Merge branch 'release/2.17.1.2411.01' into release/个税版本

# Conflicts:
#	src/com/engine/salary/wrapper/SalaryCommonWrapper.java
This commit is contained in:
钱涛 2024-12-05 10:52:08 +08:00
commit f94ab9c3be
65 changed files with 1163 additions and 247 deletions

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_page_list_setting add (
default_setting number
);
/

View File

@ -0,0 +1,8 @@
ALTER TABLE hrsa_page_list_template add (
system_type number
);
/
update hrsa_page_list_template set system_type=0;
/

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_page_list_setting add (
default_setting number
);
/

View File

@ -0,0 +1,8 @@
ALTER TABLE hrsa_page_list_template add (
system_type number
);
/
update hrsa_page_list_template set system_type=0;
/

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_page_list_setting add (
default_setting number
);
/

View File

@ -0,0 +1,8 @@
ALTER TABLE hrsa_page_list_template add (
system_type number
);
/
update hrsa_page_list_template set system_type=0;
/

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_page_list_setting ADD COLUMN default_setting int;

View File

@ -0,0 +1,3 @@
ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int;
update hrsa_page_list_template set system_type=0;

View File

@ -0,0 +1,4 @@
ALTER TABLE hrsa_page_list_setting add (
default_setting number
)
/

View File

@ -0,0 +1,7 @@
ALTER TABLE hrsa_page_list_template add (
system_type number
)
/
update hrsa_page_list_template set system_type=0
/

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_page_list_setting ADD COLUMN default_setting int ;

View File

@ -0,0 +1,3 @@
ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int ;
update hrsa_page_list_template set system_type=0;

View File

@ -0,0 +1,2 @@
ALTER TABLE hrsa_page_list_setting ADD default_setting int NULL
GO

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_page_list_template ADD system_type int NULL
GO
update hrsa_page_list_template set system_type=0
GO

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_page_list_setting add (
default_setting number
);
/

View File

@ -0,0 +1,8 @@
ALTER TABLE hrsa_page_list_template add (
system_type number
);
/
update hrsa_page_list_template set system_type=0;
/

View File

@ -7,6 +7,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.service.SalaryArchiveExcelService;
import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -45,6 +46,17 @@ public class BatEditSalaryExcelAction implements Action {
this.operatorField = operatorField;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -53,6 +65,11 @@ public class BatEditSalaryExcelAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
String docId = fieldMap.get(batSalaryExcelField);
RecordSet rs = new RecordSet();

View File

@ -7,6 +7,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.service.SalaryArchiveExcelService;
import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -46,6 +47,17 @@ public class CheckBatEditSalaryExcelAction implements Action {
this.operatorField = operatorField;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -53,6 +65,11 @@ public class CheckBatEditSalaryExcelAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
String docId = fieldMap.get(batSalaryExcelField);
RecordSet rs = new RecordSet();

View File

@ -7,6 +7,7 @@ import com.engine.salary.service.impl.SISchemeServiceImpl;
import com.engine.salary.util.SalaryEntityUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -42,6 +43,17 @@ public class CheckEditSIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -49,6 +61,11 @@ public class CheckEditSIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -38,6 +39,17 @@ public class CheckEditSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -46,7 +58,11 @@ public class CheckEditSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -60,6 +60,17 @@ public class CheckInitSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -68,6 +79,11 @@ public class CheckInitSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();

View File

@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -49,6 +50,17 @@ public class CheckStayAddToPaySIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -57,6 +69,12 @@ public class CheckStayAddToPaySIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -49,6 +50,17 @@ public class CheckStayDelToStopSIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -57,6 +69,11 @@ public class CheckStayDelToStopSIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -54,6 +54,17 @@ public class CheckStopSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -62,6 +73,11 @@ public class CheckStopSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -11,6 +11,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -18,7 +19,10 @@ import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -47,6 +51,17 @@ public class CopyToPaySIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -54,6 +69,11 @@ public class CopyToPaySIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -7,6 +7,7 @@ import com.engine.salary.service.impl.SISchemeServiceImpl;
import com.engine.salary.util.SalaryEntityUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -41,6 +42,17 @@ public class EditSIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -48,6 +60,11 @@ public class EditSIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -38,6 +39,17 @@ public class EditSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -46,7 +58,11 @@ public class EditSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -59,6 +60,17 @@ public class EditToPaySIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -66,6 +78,11 @@ public class EditToPaySIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -59,6 +60,17 @@ public class EditToStopSIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -66,6 +78,11 @@ public class EditToStopSIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -63,6 +63,17 @@ public class InitSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -70,6 +81,11 @@ public class InitSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -70,6 +70,17 @@ public class RehireAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -78,6 +89,12 @@ public class RehireAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -65,12 +65,30 @@ public class SendSalaryAction implements Action {
*/
private String sendBy;
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
Property[] properties = requestInfo.getMainTableInfo().getProperty();
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
String idStr = fieldMap.get(idFieldName);
if (StringUtils.isBlank(idStr)) {
requestInfo.getRequestManager().setMessage("核算记录id或工资单id不能为空");

View File

@ -12,6 +12,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -54,6 +55,17 @@ public class StayAddToPaySIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -62,6 +74,11 @@ public class StayAddToPaySIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -14,6 +14,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
@ -55,6 +56,17 @@ public class StayDelToStopSIArchiveAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -63,6 +75,11 @@ public class StayDelToStopSIArchiveAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();
String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?";

View File

@ -60,6 +60,17 @@ public class StopSalaryAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
@ -68,6 +79,11 @@ public class StopSalaryAction implements Action {
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
RecordSet rs = new RecordSet();

View File

@ -55,12 +55,32 @@ public class UpdateSISchemeDetailAction implements Action {
this.tableName = tableName;
}
// 是否执行action的字段, 0代表不执行其余代表执行
private String enableField;
public String getEnableField() {
return enableField;
}
public void setEnableField(String enableField) {
this.enableField = enableField;
}
@Override
public String execute(RequestInfo requestInfo) {
try {
RequestManager requestManager = requestInfo.getRequestManager();
User user = requestManager.getUser();
Property[] properties = requestInfo.getMainTableInfo().getProperty();
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String enable = fieldMap.get(enableField);
if (StringUtils.isNotBlank(enable) && enable.equals("0")) {
// 不执行action
return SUCCESS;
}
DetailTable[] detailTables = requestInfo.getDetailTableInfo().getDetailTable();
List<Map<String, String>> detailList = new ArrayList<>();
if (detailTables.length > 0) {

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.setting.dto;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.salary.annotation.TableTitle;
import com.engine.salary.enums.common.SharedTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -8,13 +9,61 @@ import lombok.NoArgsConstructor;
import java.util.List;
/**
* 薪资帐套表
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_page_list_template
public class PageListTemplateDTO {
private List<WeaTableColumn> setting;
private List<WeaTableColumn> checked;
private Long id;
/**
* 模板名称
*/
@TableTitle(title = "模板名称",dataIndex = "name",key = "name")
private String name;
/**
* 页面
*/
private String page;
/**
* 设置
*/
private List<String> setting;
/**
* 是否共享,0否1是
* @see SharedTypeEnum
*/
private Integer sharedType;
@TableTitle(title = "可见性",dataIndex = "sharedTypeName",key = "sharedTypeName")
private String sharedTypeName;
/**
* 是否系统模板
*/
private Integer systemType;
@TableTitle(title = "是否系统模板",dataIndex = "systemTypeName",key = "systemTypeName")
private String systemTypeName;
@TableTitle(title = "范围",dataIndex = "limits",key = "limits")
private String limits;
/**
* 限制
*/
private List<Long> limitIds;
private Boolean canEdit;
}

View File

@ -0,0 +1,19 @@
package com.engine.salary.entity.setting.dto;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageListTemplateDetailDTO {
private List<WeaTableColumn> setting;
private List<WeaTableColumn> checked;
}

View File

@ -19,4 +19,5 @@ public class PageListSettingQueryParam {
private String page;
private String name;
}

View File

@ -0,0 +1,22 @@
package com.engine.salary.entity.setting.param;
import com.engine.salary.util.valid.DataCheck;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 恢复默认值
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageListSettingResetParam {
/**
* 页面0薪资明细
*/
@DataCheck(require = true,message = "请选择页面")
private String page;
}

View File

@ -17,6 +17,12 @@ import java.util.List;
@AllArgsConstructor
public class PageListSettingSaveParam {
/**
* 默认设置
*/
@DataCheck(require = true,message = "是否为默认设置")
private Integer defaultSetting;
/**
* 页面0薪资明细
*/
@ -27,5 +33,5 @@ public class PageListSettingSaveParam {
* 设置
*/
@DataCheck(require = true,message = "请选择设置")
private List<Long> setting;
private List<String> setting;
}

View File

@ -0,0 +1,18 @@
package com.engine.salary.entity.setting.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageListTemplateDeleteParam {
private List<Long> ids;
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.setting.param;
import com.engine.salary.common.BaseQueryParam;
import com.engine.salary.util.valid.DataCheck;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -13,7 +14,7 @@ import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageListTemplateQueryParam {
public class PageListTemplateQueryParam extends BaseQueryParam {
private Long id;

View File

@ -30,7 +30,12 @@ public class PageListSettingPO {
* 设置
*/
@ElogTransform(name = "设置")
private List<Long> setting;
private List<String> setting;
/**
* 默认设置
*/
private Integer defaultSetting;
/**

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.setting.po;
import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.enums.common.SharedTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -17,6 +18,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_page_list_template
public class PageListTemplatePO {
@ -44,16 +46,23 @@ public class PageListTemplatePO {
/**
* 是否共享,0否1是
* @see SharedTypeEnum
*/
@ElogTransform(name = "是否共享,0否1是")
@ElogTransform(name = "可见性1私有0共享")
private Integer sharedType;
/**
* 是否系统模板
*/
@ElogTransform(name = "是否系统模板,0否1是")
private Integer systemType;
/**
* 限制
*/
@ElogTransform(name = "限制")
private List<Long> limitIds;
/**
* 限制
*/
@ElogTransform(name = "限制")
private List<Long> limitIds;
/**
* 租户ID
@ -67,23 +76,23 @@ public class PageListTemplatePO {
@ElogTransform(name = "更新时间")
private Date updateTime;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 创建人
*/
@ElogTransform(name = "创建人")
private Long creator;
/**
* 创建人
*/
@ElogTransform(name = "创建人")
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
@ElogTransform(name = "是否已删除。0未删除、1已删除")
private Integer deleteType;
/**
* 是否已删除0未删除1已删除
*/
@ElogTransform(name = "是否已删除。0未删除、1已删除")
private Integer deleteType;
//主键id集合

View File

@ -0,0 +1,48 @@
package com.engine.salary.enums.common;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
public enum SharedTypeEnum implements BaseEnum<Integer> {
PRIVATE(1, "私有", 86569),
PUBLIC(0, "共享", 86568);
private Integer value;
private String defaultLabel;
private Integer labelId;
SharedTypeEnum(Integer value, String defaultLabel, Integer labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
@Override
public Integer getValue() {
return this.value;
}
@Override
public Integer getLabelId() {
return this.labelId;
}
@Override
public String getDefaultLabel() {
return this.defaultLabel;
}
public static SharedTypeEnum parseByValue(Integer value) {
for (SharedTypeEnum enums : SharedTypeEnum.values()) {
if (Objects.equals(enums.getValue(), value)) {
return enums;
}
}
return PUBLIC;
}
}

View File

@ -0,0 +1,49 @@
package com.engine.salary.handle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* 集合的转换
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Slf4j
public class LongListTypeHandler extends BaseTypeHandler<List<Long>> {
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, List<Long> list, JdbcType jdbcType) throws SQLException {
preparedStatement.setString(i, JSON.toJSONString(list));
}
@Override
public List<Long> getNullableResult(ResultSet resultSet, String s) throws SQLException {
List jsonArray = JSONArray.parseArray(resultSet.getString(s), Long.class);
return jsonArray == null ? new ArrayList<>() : jsonArray;
}
@Override
public List<Long> getNullableResult(ResultSet resultSet, int i) throws SQLException {
List jsonArray = JSONArray.parseArray(resultSet.getString(i), Long.class);
return jsonArray == null ? new ArrayList<>() : jsonArray;
}
@Override
public List<Long> getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
List jsonArray = JSONArray.parseArray(callableStatement.getString(i), Long.class);
return jsonArray == null ? new ArrayList<>() : jsonArray;
}
}

View File

@ -70,5 +70,4 @@ public interface PageLinkMapper {
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
PageLinkPO getLink(@Param("employeeId")Long employeeId, @Param("page")String page);
}

View File

@ -220,13 +220,5 @@
</foreach>
</delete>
<select id="getLink" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_page_link t
WHERE delete_type = 0
AND employee_id = #{employeeId}
AND page = #{page}
</select>
</mapper>

View File

@ -8,70 +8,71 @@ import java.util.List;
public interface PageListSettingMapper {
/**
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<PageListSettingPO> listAll();
List<PageListSettingPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<PageListSettingPO> listSome(PageListSettingPO pageListSetting);
/**
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
PageListSettingPO getById(Long id);
/**
PageListSettingPO getById(Long id);
/**
* 新增忽略null字段
*
* @param pageListSetting 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(PageListSettingPO pageListSetting);
/**
int insertIgnoreNull(PageListSettingPO pageListSetting);
/**
* 修改修改所有字段
*
* @param pageListSetting 修改的记录
* @return 返回影响行数
*/
int update(PageListSettingPO pageListSetting);
/**
int update(PageListSettingPO pageListSetting);
/**
* 修改忽略null字段
*
* @param pageListSetting 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(PageListSettingPO pageListSetting);
/**
int updateIgnoreNull(PageListSettingPO pageListSetting);
/**
* 删除记录
*
* @param pageListSetting 待删除的记录
* @return 返回影响行数
*/
int delete(PageListSettingPO pageListSetting);
int delete(PageListSettingPO pageListSetting);
/**
* 批量删除记录
*
* @param ids 主键id集合
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
//获取页面默认配置
PageListSettingPO getByPage(String page);
//获取页面默认配置
PageListSettingPO getByPage(@Param("page") String page, @Param("defaultSetting") Integer defaultSetting, @Param("creator") Long creator);
//获取页面配置模板
List<PageListSettingPO> getTemplatesByPage(String page);
//获取页面配置模板
List<PageListSettingPO> getTemplatesByPage(String page);
}

View File

@ -10,6 +10,7 @@
<result column="update_time" property="updateTime"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
<result column="default_setting" property="defaultSetting"/>
</resultMap>
<!-- 表字段 -->
@ -24,6 +25,7 @@
, t.setting
, t.tenant_key
, t.update_time
, t.default_setting
</sql>
<!-- 查询全部 -->
@ -70,6 +72,9 @@
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="defaultSetting != null">
AND default_setting = #{defaultSetting}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
@ -109,6 +114,9 @@
<if test="updateTime != null">
update_time,
</if>
<if test="defaultSetting != null">
default_setting,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="createTime != null">
@ -135,6 +143,9 @@
<if test="updateTime != null">
#{updateTime},
</if>
<if test="defaultSetting != null">
#{defaultSetting},
</if>
</trim>
</insert>
@ -150,6 +161,7 @@
setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler},
tenant_key=#{tenantKey},
update_time=#{updateTime},
default_setting=#{defaultSetting},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -180,6 +192,9 @@
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="defaultSetting != null">
default_setting=#{defaultSetting},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -209,6 +224,10 @@
FROM hrsa_page_list_setting t
WHERE delete_type = 0
and page = #{page}
and default_setting = #{defaultSetting}
<if test="creator != null">
AND creator = #{creator}
</if>
</select>
<select id="getTemplatesByPage" resultMap="BaseResultMap">

View File

@ -6,11 +6,12 @@
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="id" property="id"/>
<result column="limit_ids" property="limitIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
<result column="limit_ids" property="limitIds" typeHandler="com.engine.salary.handle.LongListTypeHandler"/>
<result column="name" property="name"/>
<result column="page" property="page"/>
<result column="setting" property="setting" typeHandler="com.engine.salary.handle.SalaryListTypeHandler" />
<result column="shared_type" property="sharedType"/>
<result column="system_type" property="systemType"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
</resultMap>
@ -28,6 +29,7 @@
, t.page
, t.setting
, t.shared_type
, t.system_type
, t.tenant_key
, t.update_time
</sql>
@ -78,6 +80,9 @@
</if>
<if test="sharedType != null">
AND shared_type = #{sharedType}
</if>
<if test="systemType != null">
AND system_type = #{systemType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
@ -127,6 +132,9 @@
<if test="sharedType != null">
shared_type,
</if>
<if test="systemType != null">
system_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
@ -162,6 +170,9 @@
<if test="sharedType != null">
#{sharedType},
</if>
<if test="systemType != null">
#{systemType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
@ -183,6 +194,7 @@
page=#{page},
setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler},
shared_type=#{sharedType},
system_type=#{systemType},
tenant_key=#{tenantKey},
update_time=#{updateTime},
</set>
@ -218,6 +230,9 @@
<if test="sharedType != null">
shared_type=#{sharedType},
</if>
<if test="systemType != null">
system_type=#{systemType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>

View File

@ -10,7 +10,6 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.entity.setting.param.PageListSettingQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
@ -26,7 +25,10 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQuery
import com.engine.salary.report.service.SalaryStatisticsEmployeeService;
import com.engine.salary.service.*;
import com.engine.salary.service.impl.*;
import com.engine.salary.util.*;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
@ -41,8 +43,6 @@ import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT;
/**
* 薪酬统计员工明细
* <p>Copyright: Copyright (c) 2022</p>
@ -325,7 +325,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
// 根据关键词过滤
if (StringUtils.isNotBlank(queryParam.getKeyword())) {
employeeList = employeeList.stream()
.filter(e -> (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword()))))
.filter(e -> (StringUtils.isNotEmpty(e.getUsername()) && e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword()))))
.collect(Collectors.toList());
}
List<Long> employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
@ -350,10 +350,23 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
@Override
public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List<SalaryAcctEmployeePO> salaryAcctEmployeeList) {
// 3.获取薪资项目
PageListSettingQueryParam param = PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build();
Map setting = getSettingService(user).getPageListSetting(param);
List<Long> checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>();
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(checked);
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
salaryItemList = salaryItemList.stream()
.sorted(new Comparator<SalaryItemPO>() {
@Override
public int compare(SalaryItemPO o1, SalaryItemPO o2) {
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
} else {
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
}
})
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) {
return SalaryStatisticsEmployeeDetailResultDTO.builder()
.salaryAcctEmployeeList(Collections.emptyList())

View File

@ -1,7 +1,6 @@
package com.engine.salary.report.wrapper;
import com.cloudstore.eccom.constant.WeaBoolAttr;
import com.cloudstore.eccom.pc.table.WeaTable;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.common.util.ServiceUtil;
@ -39,7 +38,6 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.general.PageIdConst;
import weaver.general.Util;
import weaver.hrm.User;
@ -184,17 +182,11 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
pageInfo.setList(records);
pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal());
List<WeaTableColumn> weaTableColumns;
//显示方案1显示模板
if (templateShow) {
weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue());
} else {
// 显示方案0显示定制列,默认方式
weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true);
}
List<WeaTableColumn> weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue());
// 结果
resultMap.put("columns", weaTableColumns);
resultMap.put("pageInfo", pageInfo);
if (queryParam.isExport()) {
Map<String, Object> countResultMap = Maps.newHashMap();
List<SalaryItemPO> salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList();
@ -212,21 +204,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
}
resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList());
resultMap.put("countResult", countResultMap);
} else {
WeaTable table = new WeaTable();
String pageId = "b72ed4bb-725e-45de-aea1-4eb4c9184af7";
table.setPageID(pageId);
table.setPageUID(pageId + user.getUID());
table.setPagesize(PageIdConst.getPageSize(pageId, user.getUID()));
table.setBackfields("");
table.setColumns(weaTableColumns);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(table.makeDataResult());
result.success();
resultMap.put("dataKey", result.getResultMap());
}
resultMap.put("pageInfo", pageInfo);
return resultMap;
}

View File

@ -162,4 +162,6 @@ public interface SIArchivesService {
List<InsuranceArchivesFundSchemePO> listInsuranceArchivesFundSchemeByIds(List<Long> ids);
List<InsuranceArchivesOtherSchemePO> listInsuranceArchivesOtherSchemeByIds(List<Long> ids);
List<InsuranceArchivesBaseInfoPO> listAll();
}

View File

@ -2,24 +2,58 @@ package com.engine.salary.service;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.salary.entity.setting.dto.PageListTemplateDTO;
import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO;
import com.engine.salary.entity.setting.param.*;
import com.engine.salary.entity.setting.po.PageListTemplatePO;
import com.engine.salary.util.page.PageInfo;
import java.util.List;
import java.util.Map;
public interface SettingService {
@Deprecated
void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam);
Map getPageListSetting(PageListSettingQueryParam param);
/**
* 获取原有显示列定制配置
* @param param
* @return
*/
PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param);
PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param);
@Deprecated
void resetPageListSetting(PageListSettingResetParam param);
/**
* 获取指定模板配置或者指定页面默认配置
* @param param
* @return
*/
PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param);
/**
* 获取可选模板列表
* @param queryParam
* @return
*/
List<PageListTemplatePO> getPageListTemplates(PageListTemplateQueryParam queryParam);
/**
* 保存模板
* @param param
* @return
*/
PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param);
/**
* 更换模板
* @param param
*/
void changePageListTemplate(PageListTemplateChangeParam param);
List<WeaTableColumn> getPageListColumns(String page);
PageInfo<PageListTemplateDTO> getTemplates(PageListTemplateQueryParam param);
void deletePageListTemplate(PageListTemplateDeleteParam param);
}

View File

@ -4216,4 +4216,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService
partition.forEach(list -> resultList.addAll(getOtherSchemeMapper().getOtherById(list)));
return resultList;
}
@Override
public List<InsuranceArchivesBaseInfoPO> listAll() {
return getInsuranceBaseInfoMapper().listAll();
}
}

View File

@ -9,11 +9,14 @@ import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.setting.dto.PageListTemplateDTO;
import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO;
import com.engine.salary.entity.setting.param.*;
import com.engine.salary.entity.setting.po.PageLinkPO;
import com.engine.salary.entity.setting.po.PageListSettingPO;
import com.engine.salary.entity.setting.po.PageListTemplatePO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.enums.common.SharedTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.setting.PageLinkMapper;
import com.engine.salary.mapper.setting.PageListSettingMapper;
@ -26,6 +29,8 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.engine.salary.util.valid.ValidUtil;
import weaver.hrm.User;
@ -36,7 +41,7 @@ import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TEN
import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT;
/**
* 薪资核算
* 页面显示
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
@ -67,71 +72,33 @@ public class SettingServiceImpl extends Service implements SettingService {
@Override
public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) {
ValidUtil.doValidator(pageListSettingSaveParam);
Date now = new Date();
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage());
List<Long> checked = pageListSettingSaveParam.getSetting().stream().distinct().collect(Collectors.toList());
//是否保存默认设置
Integer defaultSetting = pageListSettingSaveParam.getDefaultSetting();
PageListSettingPO pageListSettingPO;
if (defaultSetting == 0) {
pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage(), defaultSetting, (long) user.getUID());
} else {
pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage(), defaultSetting, null);
}
List<String> checked = pageListSettingSaveParam.getSetting().stream().distinct().collect(Collectors.toList());
if (pageListSettingPO != null) {
pageListSettingPO.setSetting(checked);
pageListSettingPO.setUpdateTime(now);
getPageListSettingMapper().updateIgnoreNull(pageListSettingPO);
} else {
pageListSettingPO = PageListSettingPO.builder()
.id(IdGenerator.generate())
.page(pageListSettingSaveParam.getPage())
.setting(checked)
.creator((long) user.getUID())
.createTime(now)
.updateTime(now)
.deleteType(0)
.tenantKey(DEFAULT_TENANT_KEY)
.build();
pageListSettingPO = PageListSettingPO.builder().id(IdGenerator.generate()).page(pageListSettingSaveParam.getPage()).setting(checked).defaultSetting(defaultSetting).creator((long) user.getUID()).createTime(now).updateTime(now).deleteType(0).tenantKey(DEFAULT_TENANT_KEY).build();
getPageListSettingMapper().insertIgnoreNull(pageListSettingPO);
}
}
@Override
public Map getPageListSetting(PageListSettingQueryParam param) {
public PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param) {
String page = param.getPage();
Map result = new HashMap();
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page);
if (SALARY_DETAILS_REPORT.getValue().equals(page)) {
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
salaryItemList = salaryItemList.stream()
.filter(po -> {
String name = param.getName();
if (StrUtil.isNotEmpty(name)) {
return po.getName() != null && po.getName().contains(name);
}
return true;
})
.sorted((o1, o2) -> {
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
} else {
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
})
.collect(Collectors.toList());
result.put("setting", salaryItemList);
if (pageListSettingPO != null && CollUtil.isNotEmpty(pageListSettingPO.getSetting())) {
result.put("checked", pageListSettingPO.getSetting());
} else {
List<Long> collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
result.put("checked", collect);
}
}
return result;
}
@Override
public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) {
String page = param.getPage();
Long id = param.getId();
if (SALARY_DETAILS_REPORT.getValue().equals(page)) {
List<WeaTableColumn> columns = new ArrayList<>();
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "薪资所属月"), "salaryMonth"));
@ -150,46 +117,122 @@ public class SettingServiceImpl extends Service implements SettingService {
}
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
List<WeaTableColumn> collect = salaryItemList.stream()
.filter(po -> {
String name = param.getName();
if (StrUtil.isNotEmpty(name)) {
return po.getName() != null && po.getName().contains(name);
}
return true;
})
.sorted((o1, o2) -> {
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
} else {
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
})
.map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX))
.collect(Collectors.toList());
List<WeaTableColumn> collect = salaryItemList.stream().filter(po -> {
String name = param.getName();
if (StrUtil.isNotEmpty(name)) {
return po.getName() != null && po.getName().contains(name);
}
return true;
}).sorted((o1, o2) -> {
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
} else {
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
}).map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)).collect(Collectors.toList());
columns.addAll(collect);
Map<String, WeaTableColumn> columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn);
List<WeaTableColumn> checkedList = new ArrayList<>();
if (id != null) {
PageListTemplatePO po = getPageListTemplateMapper().getById(id);
if (po != null) {
checkedList = Optional.ofNullable(po.getSetting()).orElse(new ArrayList<>())
.stream()
.map(s -> columnMap.getOrDefault(s, new WeaTableColumn()))
.collect(Collectors.toList());
}
//默认设置
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page, 1, null);
//查询选中的项目
List<WeaTableColumn> checkedList = new ArrayList<>();
if (pageListSettingPO != null) {
checkedList = Optional.ofNullable(pageListSettingPO.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList());
} else {
checkedList = columns;
}
return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build();
return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build();
}
return PageListTemplateDTO.builder().build();
return PageListTemplateDetailDTO.builder().setting(new ArrayList<>()).checked(new ArrayList<>()).build();
}
@Override
public void resetPageListSetting(PageListSettingResetParam param) {
ValidUtil.doValidator(param);
String page = param.getPage();
//个人设置
PageListSettingPO selfSetting = getPageListSettingMapper().getByPage(page, 0, (long) user.getUID());
if (selfSetting != null) {
getPageListSettingMapper().delete(selfSetting);
}
}
@Override
public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) {
String page = param.getPage();
if (SALARY_DETAILS_REPORT.getValue().equals(page)) {
List<WeaTableColumn> columns = new ArrayList<>();
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "薪资所属月"), "salaryMonth"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgent"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "账套"), "salarySob"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "userName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "分部"), "subCompany"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "部门"), "department"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "岗位"), "jobTitle"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "员工状态"), "status"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "入职日期"), "companystartdate"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE));
if (StrUtil.isNotBlank(param.getName())) {
columns = columns.stream().filter(column -> column.getText().contains(param.getName())).collect(Collectors.toList());
}
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
List<WeaTableColumn> salaryItemCols = salaryItemList.stream().filter(po -> {
String name = param.getName();
if (StrUtil.isNotEmpty(name)) {
return po.getName() != null && po.getName().contains(name);
}
return true;
}).sorted((o1, o2) -> {
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
} else {
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
}).map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)).collect(Collectors.toList());
columns.addAll(salaryItemCols);
Map<String, WeaTableColumn> columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn);
List<WeaTableColumn> checkedList = columns;
Long id = param.getId();
if (id != null) {
//编辑模板指定模板id
PageListTemplatePO po = getPageListTemplateMapper().getById(id);
if (po != null) {
checkedList = Optional.ofNullable(po.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList());
}
} else {
//打开选中的模板
List<PageListTemplatePO> pageListTemplates = getPageListTemplates(PageListTemplateQueryParam.builder().page(page).build());
List<WeaTableColumn> columnList = pageListTemplates.stream()
.filter(PageListTemplatePO::getChecked).map(PageListTemplatePO::getSetting).findFirst().orElse(new ArrayList<>())
.stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(columnList)) {
checkedList = columnList;
}
}
return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build();
}
return PageListTemplateDetailDTO.builder().build();
}
@Override
@ -197,32 +240,75 @@ public class SettingServiceImpl extends Service implements SettingService {
ValidUtil.doValidator(param);
Date now = new Date();
String page = param.getPage();
//个人配置模板
PageListTemplatePO build = PageListTemplatePO.builder().page(page).build();
List<PageListTemplatePO> pos = getPageListTemplateMapper().listSome(build);
//获取当前选择的模板
PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), SALARY_DETAILS_REPORT.getValue());
//如果查不到不到系统模板创建系统模板
PageListTemplatePO systemTemplate = pos.stream().filter(po -> po.getSystemType() != null && po.getSystemType() == 1).findFirst().orElse(null);
if (systemTemplate == null) {
//查询系统默认配置
PageListTemplateDetailDTO pageListSetting = getDefaultPageListSetting(PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build());
systemTemplate = PageListTemplatePO.builder()
.id(IdGenerator.generate())
.page(param.getPage())
.name("系统模板")
.sharedType(SharedTypeEnum.PUBLIC.getValue())
.systemType(SalaryOnOffEnum.ON.getValue())
.setting(pageListSetting.getChecked().stream().map(WeaTableColumn::getColumn).collect(Collectors.toList()))
.creator((long) user.getUID())
.createTime(now)
.updateTime(now)
.deleteType(0)
.tenantKey(DEFAULT_TENANT_KEY).build();
getPageListTemplateMapper().insertIgnoreNull(systemTemplate);
pos.add(systemTemplate);
}
//获取当前选择的模板
PageLinkPO link = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(SALARY_DETAILS_REPORT.getValue()).build()).stream().findFirst().orElse(null);
if (link == null) {
link = PageLinkPO.builder()
.id(IdGenerator.generate())
.employeeId((long) user.getUID())
.page(param.getPage())
.templateId(systemTemplate.getId())
.tenantKey(DEFAULT_TENANT_KEY)
.createTime(new Date())
.updateTime(new Date())
.creator((long) user.getUID())
.deleteType(0).build();
getPageLinkMapper().insertIgnoreNull(link);
}
Long templateId = link.getTemplateId();
//权限控制
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID());
List<String> taxIds = SalaryEntityUtil.properties(taxAgentPOS, po -> po.getId().toString(), Collectors.toList());
pos = pos.stream()
.filter(po -> {
if (po.getSharedType() == 1) {
List limitIds = po.getLimitIds();
List<String> collect = new ArrayList<>();
for (int i = 0; i < limitIds.size(); i++) {
collect.add(limitIds.get(i).toString());
}
return CollectionUtil.isNotEmpty(limitIds) && CollectionUtil.intersection(collect, taxIds).size() != 0;
}
return true;
})
.peek(po -> {
po.setChecked(link != null && po.getId().equals(link.getTemplateId()));
})
.collect(Collectors.toList());
List<Long> taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList());
Boolean chief = getTaxAgentService().isChief((long) user.getUID());
pos = pos.stream().filter(po -> {
SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType());
//系统模板直接可见
if (chief || po.getSystemType() == 1) {
return true;
}
//私有只能自己看到
if (sharedTypeEnum == SharedTypeEnum.PRIVATE) {
return Objects.equals((long) user.getUID(), po.getCreator());
}
//共享
if (sharedTypeEnum == SharedTypeEnum.PUBLIC) {
List<Long> limitIds = po.getLimitIds();
return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0;
}
return true;
}).peek(po -> {
po.setChecked(po.getId().equals(templateId));
}).collect(Collectors.toList());
return pos;
}
@ -239,14 +325,14 @@ public class SettingServiceImpl extends Service implements SettingService {
.page(param.getPage())
.name(param.getName())
.sharedType(param.getSharedType())
.systemType(0)
.limitIds(param.getLimitIds())
.setting(param.getSetting())
.creator((long) user.getUID())
.createTime(now)
.updateTime(now)
.deleteType(0)
.tenantKey(DEFAULT_TENANT_KEY)
.build();
.tenantKey(DEFAULT_TENANT_KEY).build();
getPageListTemplateMapper().insertIgnoreNull(po);
} else {
po = getPageListTemplateMapper().getById(id);
@ -274,30 +360,88 @@ public class SettingServiceImpl extends Service implements SettingService {
Set<Long> ids = SalaryEntityUtil.properties(pageLinkPOS, PageLinkPO::getId);
getPageLinkMapper().deleteByIds(ids);
}
PageLinkPO pageLinkPO = PageLinkPO.builder()
.id(IdGenerator.generate())
.employeeId((long) user.getUID())
.page(param.getPage())
.templateId(param.getTemplateId())
.tenantKey(DEFAULT_TENANT_KEY)
.createTime(new Date())
.updateTime(new Date())
.creator((long) user.getUID())
.deleteType(0)
.build();
PageLinkPO pageLinkPO = PageLinkPO.builder().id(IdGenerator.generate()).employeeId((long) user.getUID()).page(param.getPage()).templateId(param.getTemplateId()).tenantKey(DEFAULT_TENANT_KEY).createTime(new Date()).updateTime(new Date()).creator((long) user.getUID()).deleteType(0).build();
getPageLinkMapper().insertIgnoreNull(pageLinkPO);
}
@Override
public List<WeaTableColumn> getPageListColumns(String page) {
PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), page);
if (link != null) {
PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).id(link.getTemplateId()).build());
return pageListTemplate.getChecked();
} else {
PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).build());
return pageListTemplate.getSetting();
PageListTemplateDetailDTO pageListTemplate = getPageListTemplate((PageListTemplateQueryParam.builder().page(page).build()));
return pageListTemplate.getChecked();
}
@Override
public PageInfo<PageListTemplateDTO> getTemplates(PageListTemplateQueryParam param) {
PageListTemplatePO build = PageListTemplatePO.builder().page(param.getPage()).build();
List<PageListTemplatePO> pos = getPageListTemplateMapper().listSome(build);
//权限控制
List<TaxAgentPO> agentPOList = getTaxAgentService().listAll();
Map<Long, String> idNameMap = SalaryEntityUtil.convert2Map(agentPOList, TaxAgentPO::getId, TaxAgentPO::getName);
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID());
Boolean chief = getTaxAgentService().isChief((long) user.getUID());
List<Long> taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList());
List<PageListTemplateDTO> templateDTOS = pos.stream()
.filter(po -> {
SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType());
//系统模板直接可见
if (chief || po.getSystemType() == 1) {
return true;
}
//私有只能自己看到
if (sharedTypeEnum == SharedTypeEnum.PRIVATE) {
return Objects.equals((long) user.getUID(), po.getCreator());
}
//共享
if (sharedTypeEnum == SharedTypeEnum.PUBLIC) {
List<Long> limitIds = po.getLimitIds();
return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0;
}
return true;
}).map(po -> PageListTemplateDTO.builder()
.id(po.getId())
.page(po.getPage())
.name(po.getName())
.sharedType(po.getSharedType())
.systemType(po.getSystemType())
.sharedTypeName(SharedTypeEnum.parseByValue(po.getSharedType()).getDefaultLabel())
.systemTypeName(po.getSystemType() == 1 ? "系统模板" : "自定义")
.limits(CollUtil.isEmpty(po.getLimitIds()) ? "所有" : Optional.ofNullable(po.getLimitIds()).orElse(new ArrayList<>()).stream().map(id -> idNameMap.getOrDefault(id, "")).collect(Collectors.joining(",")))
.limitIds(CollUtil.isEmpty(po.getLimitIds()) ? new ArrayList<>() : po.getLimitIds())
.setting(po.getSetting())
.canEdit(chief || (Objects.equals((long) user.getUID(), po.getCreator()) && po.getSystemType() == 0))
.build())
.collect(Collectors.toList());
return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), templateDTOS, PageListTemplateDTO.class);
}
@Override
public void deletePageListTemplate(PageListTemplateDeleteParam param) {
List<Long> ids = param.getIds();
if (CollUtil.isEmpty(ids)) {
throw new SalaryRunTimeException("未选择模板!");
}
ids.forEach(id -> {
PageListTemplatePO pageListTemplatePO = getPageListTemplateMapper().getById(id);
if (pageListTemplatePO == null) {
throw new SalaryRunTimeException("模板不存在!");
}
if (pageListTemplatePO.getSystemType() == 1) {
throw new SalaryRunTimeException("系统模板不允许删除!");
}
if (!Objects.equals((long) user.getUID(), pageListTemplatePO.getCreator())) {
throw new SalaryRunTimeException(pageListTemplatePO.getName() + "模板无权限删除!");
}
List<PageLinkPO> pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().templateId(id).build());
if (CollUtil.isNotEmpty(pageLinkPOS)) {
throw new SalaryRunTimeException(pageListTemplatePO.getName() + "模板正被使用!不允许删除");
}
});
getPageListTemplateMapper().deleteByIds(ids);
}
}

View File

@ -20,6 +20,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveInitImportDTO;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.datacollection.VariableArchiveMapper;
import com.engine.salary.service.*;
@ -272,8 +273,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi
//动态列组装
List<WeaTableColumn> columns = VariableArchiveBO.buildVariableArchiveTable(variableItems);
columns.add(0, new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "薪资所属月"), "salaryMonth"));
Map<String, Object> datas = new HashMap<>();
datas.put("data", resultMap);
datas.put("column", columns);
@ -287,6 +286,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi
.map(po -> VariableItemListDTO.builder()
.id(po.getId())
.name(po.getName())
.dataType(SalaryDataTypeEnum.parseByValue(po.getDataType()).getValue())
.build())
.collect(Collectors.toList());
return variableItemDTOList;

View File

@ -3,12 +3,15 @@ package com.engine.salary.timer;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.biz.SalaryArchiveBiz;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO;
import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
import com.engine.salary.enums.siaccount.EmployeeStatusEnum;
import com.engine.salary.mapper.siarchives.FundSchemeMapper;
import com.engine.salary.mapper.siarchives.OtherSchemeMapper;
@ -22,14 +25,12 @@ import com.engine.salary.service.impl.SalaryEmployeeServiceImpl;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import weaver.hrm.User;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -38,25 +39,28 @@ import java.util.stream.Collectors;
* @date 2023/08/14 9:30
* @description 自动同步人员社保福利档案薪资档案为公司开始日期字段companystartdate
*/
@Slf4j
public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob {
private SalaryArchiveService getSalaryArchiveService(User user) {
return ServiceUtil.getService(SalaryArchiveServiceImpl.class,user);
return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user);
}
private SalaryEmployeeService getSalaryEmployeeService(User user) {
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class,user);
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
private SIArchivesService getSIArchivesService(User user) {
return ServiceUtil.getService(SIArchivesServiceImpl.class,user);
return ServiceUtil.getService(SIArchivesServiceImpl.class, user);
}
private String syncInsuranceArchive;
private String syncSalaryArchive;
private String allStayAddToPay;
private String allGotoFixed;
private SalaryArchiveBiz getSalaryArchiveMapper = new SalaryArchiveBiz();
private SocialSchemeMapper getSocialSchemeMapper() {
@ -72,14 +76,13 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob {
}
@Override
public void execute() {
User user = new User();
user.setUid(1);
user.setLoginid("sysadmin");
if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive,"false")) {
if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive, "false")) {
// 同步社保福利档案
// 获取社保公积金其他福利中起始缴纳月任意一个为空的社保档案主表po
List<InsuranceArchivesBaseInfoPO> needSyncInsuranceBaseInfoList = getSIArchivesService(user).listStartDateIsNull(Collections.emptyList());
@ -125,7 +128,7 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob {
});
}
if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive,"false")) {
if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive, "false")) {
// 同步薪资档案
// 获取薪资档案起始发薪日为空且是待定薪资的档案
List<SalaryArchivePO> salaryArchiveList = getSalaryArchiveService(user).listPayStartDateIsNull(SalaryArchiveListTypeEnum.PENDING.getValue());
@ -154,6 +157,27 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob {
getSalaryArchiveMapper.batchUpdate(needUpdateArchiveList);
}
//一键定薪
if (StringUtils.isNotBlank(allStayAddToPay) && !StringUtils.equals(allStayAddToPay, "false")) {
List<InsuranceArchivesBaseInfoPO> allBaseInfoList = getSIArchivesService(user).listAll();
List<Long> ids = allBaseInfoList.stream()
.filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue()))
.map(InsuranceArchivesBaseInfoPO::getId)
.collect(Collectors.toList());
Map<String, Object> map = getSIArchivesService(user).stayAddToPay(ids);
log.info("社保一键定薪结果:" + map);
}
if (StringUtils.isNotBlank(allGotoFixed) && !StringUtils.equals(allGotoFixed, "false")) {
SalaryArchiveQueryParam queryParam = SalaryArchiveQueryParam.builder().build();
queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue()));
List<SalaryArchiveListDTO> salaryArchiveList = getSalaryArchiveService(user).getSalaryArchiveList(queryParam);
List<Long> ids = SalaryEntityUtil.properties(salaryArchiveList, SalaryArchiveListDTO::getId, Collectors.toList());
Map<String, Object> map = getSalaryArchiveService(user).gotoFixed(ids);
log.info("薪资一键定薪结果:" + map);
}
}
}

View File

@ -95,6 +95,9 @@ public class SalaryTokenUtil {
// 获取appid的id
String appidId = baseBean.getPropValue("hrmSalaryBillToken", "appid_id");
if (StringUtils.isBlank(appidId)) {
return resultMap;
}
String ip = baseBean.getPropValue("hrmSalaryBillToken", "ip");
rs.execute("select APPID from ECOLOGY_BIZ_EC where id =" + appidId);
// 获取appid

View File

@ -6,6 +6,7 @@ import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
import com.engine.salary.entity.browser.dto.BrowserDataDTO;
import com.engine.salary.entity.browser.param.BrowserDataQueryParam;
import com.engine.salary.entity.setting.dto.PageListTemplateDTO;
import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO;
import com.engine.salary.entity.setting.param.*;
import com.engine.salary.entity.setting.po.PageListSettingPO;
import com.engine.salary.entity.setting.po.PageListTemplatePO;
@ -80,6 +81,14 @@ public class SalaryCommonController {
return new ResponseResult<PageListSettingSaveParam, String>(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param);
}
@POST
@Path("/pageList/reset/setting")
@Produces(MediaType.APPLICATION_JSON)
public String resetPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingResetParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListSettingResetParam, String>(user).run(getSalaryCommonWrapper(user)::resetPageListSetting, param);
}
/**
* 页面默认值
* @param request
@ -92,7 +101,7 @@ public class SalaryCommonController {
@Produces(MediaType.APPLICATION_JSON)
public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListSettingQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListSettingQueryParam, Map>(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param);
return new ResponseResult<PageListSettingQueryParam, PageListTemplateDetailDTO>(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param);
}
/**
@ -107,7 +116,7 @@ public class SalaryCommonController {
@Produces(MediaType.APPLICATION_JSON)
public String getPageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListTemplateQueryParam, PageListTemplateDTO>(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param);
return new ResponseResult<PageListTemplateQueryParam, PageListTemplateDetailDTO>(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param);
}
/**
@ -125,6 +134,14 @@ public class SalaryCommonController {
return new ResponseResult<PageListTemplateQueryParam, List<PageListTemplatePO>>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param);
}
@POST
@Path("/pageList/template/pageList")
@Produces(MediaType.APPLICATION_JSON)
public String getTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListTemplateQueryParam, PageInfo<PageListTemplateDTO>>(user).run(getSalaryCommonWrapper(user)::getTemplates, param);
}
/**
* 页面模板列表
* @param request
@ -140,6 +157,15 @@ public class SalaryCommonController {
return new ResponseResult<PageListTemplateSaveParam, PageListTemplatePO>(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param);
}
@POST
@Path("/pageList/template/delete")
@Produces(MediaType.APPLICATION_JSON)
public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateDeleteParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListTemplateDeleteParam, PageListTemplatePO>(user).run(getSalaryCommonWrapper(user)::deletePageListTemplate, param);
}
/**
* 页面模板列表
* @param request

View File

@ -8,6 +8,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.setting.param.PageListSettingQueryParam;
import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
import com.engine.salary.entity.setting.dto.PageListTemplateDTO;
import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO;
import com.engine.salary.entity.setting.param.*;
import com.engine.salary.entity.setting.po.PageListTemplatePO;
import com.engine.salary.service.SalaryCacheService;
@ -20,6 +21,7 @@ import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import org.apache.commons.lang3.StringUtils;
import com.engine.salary.service.impl.SettingServiceImpl;
import com.engine.salary.util.page.PageInfo;
import weaver.hrm.User;
import java.util.List;
@ -74,15 +76,21 @@ public class SalaryCommonWrapper extends Service {
public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) {
getSettingService(user).savePageListSetting(pageListSettingSaveParam);
public void savePageListSetting(PageListSettingSaveParam param) {
getSettingService(user).savePageListSetting(param);
}
public void resetPageListSetting(PageListSettingResetParam param) {
getSettingService(user).resetPageListSetting(param);
}
public Map getPageListSetting(PageListSettingQueryParam param) {
return getSettingService(user).getPageListSetting(param);
public PageListTemplateDetailDTO getPageListSetting(PageListSettingQueryParam param) {
return getSettingService(user).getDefaultPageListSetting(param);
}
public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) {
public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) {
return getSettingService(user).getPageListTemplate(param);
}
@ -90,12 +98,21 @@ public class SalaryCommonWrapper extends Service {
return getSettingService(user).getPageListTemplates(param);
}
public PageInfo<PageListTemplateDTO> getTemplates(PageListTemplateQueryParam param) {
return getSettingService(user).getTemplates(param);
}
public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) {
return getSettingService(user).savePageListTemplate(param);
}
public void deletePageListTemplate(PageListTemplateDeleteParam param) {
getSettingService(user).deletePageListTemplate(param);
}
public void changePageListTemplate(PageListTemplateChangeParam param) {
getSettingService(user).changePageListTemplate(param);
}
}

View File

@ -77,9 +77,6 @@ public class SalarySobItemWrapper extends Service {
Integer searchPageSize = queryParam.getPageSize();
Integer searchCurrent = queryParam.getCurrent();
// 分页查询薪资项目
queryParam.setPageSize(10000000);
queryParam.setCurrent(1);
PageInfo<SalaryItemPO> page = getSalaryItemService(user).listPageByParam(queryParam);
List<SalaryItemPO> salaryItemList = page.getList();

View File

@ -50,14 +50,14 @@ public class VariableArchiveWrapper extends Service {
*/
public Map<String, Object> list(VariableArchiveQueryParam queryParam) {
//薪资档案列表
// 薪资档案列表
PageInfo<VariableArchiveListDTO> pageInfo = getVariableArchiveService(user).listPage(queryParam);
List<VariableArchiveListDTO> salaryArchives = pageInfo.getList();
// 获取所有浮动薪酬项目
List<VariableItemPO> variableItems = getVariableItemService(user).listAll();
//整合所有的显示列固定列+薪资项目动态列
// 整合所有的显示列固定列+薪资项目动态列
List<Map<String, Object>> listMaps = getVariableArchiveService(user).buildVariableArchiveData(salaryArchives);
PageInfo<Map<String, Object>> pageInfos = new PageInfo<Map<String, Object>>(listMaps);