Merge branch 'release/2.16.1.2410.01' into feature/次账号
# Conflicts: # src/com/engine/salary/service/impl/SalarySendServiceImpl.java
This commit is contained in:
commit
94bb1ede32
Binary file not shown.
|
|
@ -1,5 +1,6 @@
|
||||||
package com.engine.salary.entity.salaryBill.dto;
|
package com.engine.salary.entity.salaryBill.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -16,47 +17,18 @@ import java.util.Date;
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
////"我的工资单")
|
|
||||||
//@TableOperates(value = {
|
|
||||||
// @Operates(index = 0, text = "查看", labelId = 90821)
|
|
||||||
//}, tableType = WeaTableTypeEnum.NONE)
|
|
||||||
public class SalaryMySalaryBillListDTO {
|
public class SalaryMySalaryBillListDTO {
|
||||||
|
|
||||||
// 主键id")
|
|
||||||
// @WeaFormat(
|
|
||||||
// label = "id",
|
|
||||||
// tableColumn = @TableColumn(hide = "true")
|
|
||||||
// )
|
|
||||||
// @JsonSerialize(using = ToStringSerializer.class)
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
// 薪资所属月")
|
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
|
||||||
// @WeaFormat(
|
|
||||||
// label = "薪资所属月",
|
|
||||||
// labelId = 87614,
|
|
||||||
// tableColumn = @TableColumn(width = "20%")
|
|
||||||
// )
|
|
||||||
// @JsonFormat(pattern = "yyyy-MM")
|
|
||||||
private Date salaryYearMonth;
|
private Date salaryYearMonth;
|
||||||
|
|
||||||
// 核算次数")
|
|
||||||
private String acctTimes;
|
private String acctTimes;
|
||||||
|
|
||||||
// 个税扣缴义务人")
|
|
||||||
// @WeaFormat(
|
|
||||||
// label = "个税扣缴义务人",
|
|
||||||
// labelId = 86184,
|
|
||||||
// tableColumn = @TableColumn(width = "40%")
|
|
||||||
// )
|
|
||||||
private String taxAgent;
|
private String taxAgent;
|
||||||
|
|
||||||
// 发放时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
// @WeaFormat(
|
|
||||||
// label = "发放时间",
|
|
||||||
// labelId = 93634,
|
|
||||||
// tableColumn = @TableColumn(width = "40%")
|
|
||||||
// )
|
|
||||||
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
private Date sendTime;
|
private Date sendTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.engine.salary.entity.salaryBill.dto;
|
package com.engine.salary.entity.salaryBill.dto;
|
||||||
|
|
||||||
|
import com.engine.salary.enums.salarybill.MonthTypeEnum;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -19,6 +20,10 @@ import lombok.NoArgsConstructor;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class salaryBillViewingLimitSetting {
|
public class salaryBillViewingLimitSetting {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 月份限制类型
|
||||||
|
*/
|
||||||
|
private MonthTypeEnum monthType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查看几月内的工资单
|
* 查看几月内的工资单
|
||||||
|
|
|
||||||
|
|
@ -297,6 +297,8 @@ public class SalaryAcctResultBO {
|
||||||
map.put("departmentId", e.getDepartmentId());
|
map.put("departmentId", e.getDepartmentId());
|
||||||
} else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) {
|
} else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) {
|
||||||
map.put("subcompanyName", e.getSubcompanyName());
|
map.put("subcompanyName", e.getSubcompanyName());
|
||||||
|
}else if ("subcompanyId".equals(salarySobEmpField.getFieldCode())) {
|
||||||
|
map.put("subcompanyId", e.getSubcompanyId());
|
||||||
} else if ("jobcall".equals(salarySobEmpField.getFieldCode())) {
|
} else if ("jobcall".equals(salarySobEmpField.getFieldCode())) {
|
||||||
map.put("jobcall", e.getJobcall());
|
map.put("jobcall", e.getJobcall());
|
||||||
} else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) {
|
} else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) {
|
||||||
|
|
|
||||||
|
|
@ -119,29 +119,38 @@ public class SalaryAcctEmployeePO {
|
||||||
* 分部
|
* 分部
|
||||||
*/
|
*/
|
||||||
@I18n
|
@I18n
|
||||||
|
@SalaryFormulaVar(defaultLabel = "分部", labelId = 86321, dataType = "string")
|
||||||
private String subcompanyName;
|
private String subcompanyName;
|
||||||
|
@SalaryFormulaVar(defaultLabel = "分部ID", labelId = 86321, dataType = "string")
|
||||||
private Long subcompanyId;
|
private Long subcompanyId;
|
||||||
/**
|
/**
|
||||||
* 部门
|
* 部门
|
||||||
*/
|
*/
|
||||||
@I18n
|
@I18n
|
||||||
|
@SalaryFormulaVar(defaultLabel = "部门", labelId = 86321, dataType = "string")
|
||||||
private String departmentName;
|
private String departmentName;
|
||||||
|
@SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86321, dataType = "string")
|
||||||
private Long departmentId;
|
private Long departmentId;
|
||||||
/**
|
/**
|
||||||
* 岗位
|
* 岗位
|
||||||
*/
|
*/
|
||||||
@I18n
|
@I18n
|
||||||
|
@SalaryFormulaVar(defaultLabel = "岗位", labelId = 86321, dataType = "string")
|
||||||
private String jobtitleName;
|
private String jobtitleName;
|
||||||
|
@SalaryFormulaVar(defaultLabel = "岗位ID", labelId = 86321, dataType = "string")
|
||||||
private Long jobtitleId;
|
private Long jobtitleId;
|
||||||
/**
|
/**
|
||||||
* 职称
|
* 职称
|
||||||
*/
|
*/
|
||||||
@I18n
|
@I18n
|
||||||
|
@SalaryFormulaVar(defaultLabel = "职称", labelId = 86321, dataType = "string")
|
||||||
private String jobcall;
|
private String jobcall;
|
||||||
|
@SalaryFormulaVar(defaultLabel = "职称ID", labelId = 86321, dataType = "string")
|
||||||
private Long jobcallId;
|
private Long jobcallId;
|
||||||
/**
|
/**
|
||||||
* 状态
|
* 状态
|
||||||
*/
|
*/
|
||||||
|
@SalaryFormulaVar(defaultLabel = "状态", labelId = 86321, dataType = "string")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
//锁定的项目
|
//锁定的项目
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ public class SalaryFormulaEmployeeDTO {
|
||||||
@SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "subcompanyBrowser")
|
@SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "subcompanyBrowser")
|
||||||
private String subcompanyName;
|
private String subcompanyName;
|
||||||
|
|
||||||
|
@SalaryFormulaVar(defaultLabel = "分部ID", labelId = 82465, dataType = "subcompanyBrowser")
|
||||||
private Long subcompanyId;
|
private Long subcompanyId;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
package com.engine.salary.enums.salarybill;
|
||||||
|
|
||||||
|
import com.engine.salary.enums.BaseEnum;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工资单限制月份类型
|
||||||
|
* <p>Copyright: Copyright (c) 2024</p>
|
||||||
|
* <p>Company: 泛微软件</p>
|
||||||
|
*
|
||||||
|
* @author qiantao
|
||||||
|
* @version 1.0
|
||||||
|
**/
|
||||||
|
public enum MonthTypeEnum implements BaseEnum<Integer> {
|
||||||
|
|
||||||
|
SALARY_DATE(0, "薪资所属月", 93286),
|
||||||
|
SEND_DATE(1, "发放日期", 93212);
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
private String defaultLabel;
|
||||||
|
|
||||||
|
private int labelId;
|
||||||
|
|
||||||
|
MonthTypeEnum(int value, String defaultLabel, int labelId) {
|
||||||
|
this.value = value;
|
||||||
|
this.defaultLabel = defaultLabel;
|
||||||
|
this.labelId = labelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultLabel() {
|
||||||
|
return defaultLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getLabelId() {
|
||||||
|
return labelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDefaultLabelByValue(Integer value) {
|
||||||
|
if (value == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
MonthTypeEnum[] enumAry = MonthTypeEnum.values();
|
||||||
|
for(int i = 0; i < Arrays.asList(enumAry).size(); i++){
|
||||||
|
if (Integer.valueOf(enumAry[i].getValue()).equals(value)) {
|
||||||
|
return enumAry[i].getDefaultLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getNameByValue(Integer value) {
|
||||||
|
if (value == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
MonthTypeEnum[] enumAry = MonthTypeEnum.values();
|
||||||
|
for(int i = 0; i < Arrays.asList(enumAry).size(); i++){
|
||||||
|
if (Integer.valueOf(enumAry[i].getValue()).equals(value)) {
|
||||||
|
return enumAry[i].name();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MonthTypeEnum parseByValue(int value) {
|
||||||
|
for (MonthTypeEnum e : MonthTypeEnum.values()) {
|
||||||
|
if (Objects.equals(e.getValue(), value)) {
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return SALARY_DATE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,11 +4,6 @@ import com.engine.salary.enums.BaseEnum;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 工资单开关项
|
|
||||||
* @Author: wangxiangzhong
|
|
||||||
* @Date: 2021/12/9 15:56
|
|
||||||
*/
|
|
||||||
public enum SalarySendStatusEnum implements BaseEnum<Integer> {
|
public enum SalarySendStatusEnum implements BaseEnum<Integer> {
|
||||||
|
|
||||||
UNSEND(0, "未发放", 93286),
|
UNSEND(0, "未发放", 93286),
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,5 @@
|
||||||
package com.engine.salary.enums.salarybill;
|
package com.engine.salary.enums.salarybill;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 文本内容位置
|
|
||||||
* @Author: wangxiangzhong
|
|
||||||
* @Date: 2021/12/9 13:22
|
|
||||||
*/
|
|
||||||
public enum SalaryTemplateTextContentPositionEnum {
|
public enum SalaryTemplateTextContentPositionEnum {
|
||||||
BEFORE(1, "薪资项目前", 92937),
|
BEFORE(1, "薪资项目前", 92937),
|
||||||
AFTER(2, "薪资项目后", 92938);
|
AFTER(2, "薪资项目后", 92938);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,5 @@
|
||||||
package com.engine.salary.enums.salarybill;
|
package com.engine.salary.enums.salarybill;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 工资单插入变量
|
|
||||||
* @Author: wangxiangzhong
|
|
||||||
* @Date: 2021/12/9 13:13
|
|
||||||
*/
|
|
||||||
public enum SalaryTemplateVarEnum {
|
public enum SalaryTemplateVarEnum {
|
||||||
|
|
||||||
CORPORATENAME("CORPORATENAME", "公司名称", 92936),
|
CORPORATENAME("CORPORATENAME", "公司名称", 92936),
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,6 @@ package com.engine.salary.enums.salarybill;
|
||||||
|
|
||||||
import com.engine.salary.enums.BaseEnum;
|
import com.engine.salary.enums.BaseEnum;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 水印类型
|
|
||||||
* @Author: wangxiangzhong
|
|
||||||
* @Date: 2021/12/9 13:13
|
|
||||||
*/
|
|
||||||
public enum SalaryTemplateWatermarkTypeEnum implements BaseEnum<String> {
|
public enum SalaryTemplateWatermarkTypeEnum implements BaseEnum<String> {
|
||||||
|
|
||||||
DEFAULT("DEFAULT", "系统默认水印", 220057),
|
DEFAULT("DEFAULT", "系统默认水印", 220057),
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,6 @@ package com.engine.salary.enums.salarybill;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 工资单开关项
|
|
||||||
* @Author: wangxiangzhong
|
|
||||||
* @Date: 2021/12/9 15:56
|
|
||||||
*/
|
|
||||||
public enum SalaryTemplateWhetherEnum {
|
public enum SalaryTemplateWhetherEnum {
|
||||||
TRUE(1, "是", 84967),
|
TRUE(1, "是", 84967),
|
||||||
FALSE(0, "否", 84968);
|
FALSE(0, "否", 84968);
|
||||||
|
|
|
||||||
|
|
@ -131,11 +131,10 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getDatas(Attend4Salary attend4Salary) {
|
public List<Map<String, String>> getDatas(Attend4Salary attend4Salary) {
|
||||||
ValidUtil.doValidator(attend4Salary);
|
|
||||||
log.info("salaryAttend开始获取的考勤数据,参数{}", attend4Salary);
|
|
||||||
List<Map<String, String>> list = new ArrayList<>();
|
List<Map<String, String>> list = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
ValidUtil.doValidator(attend4Salary);
|
||||||
Map<String, Object> paramsMap = new HashMap<String, Object>();
|
Map<String, Object> paramsMap = new HashMap<String, Object>();
|
||||||
paramsMap.put("pageIndex", 1);
|
paramsMap.put("pageIndex", 1);
|
||||||
paramsMap.put("pageSize", 500);
|
paramsMap.put("pageSize", 500);
|
||||||
|
|
@ -152,6 +151,8 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt
|
||||||
Map<String, Object> temp = new HashMap<String, Object>();
|
Map<String, Object> temp = new HashMap<String, Object>();
|
||||||
temp.put("data", JSONObject.toJSONString(paramsMap));
|
temp.put("data", JSONObject.toJSONString(paramsMap));
|
||||||
temp.put("reportType", "month");
|
temp.put("reportType", "month");
|
||||||
|
|
||||||
|
log.info("salaryAttend开始获取的考勤数据,参数{}", temp);
|
||||||
list = (List<Map<String, String>>) commandExecutor.execute(new GetKQReportCmd(temp, user)).get("datas");
|
list = (List<Map<String, String>>) commandExecutor.execute(new GetKQReportCmd(temp, user)).get("datas");
|
||||||
if (isLog) {
|
if (isLog) {
|
||||||
log.info("salaryAttend获取的考勤数据,{}", JSONUtils.toJSONString(list));
|
log.info("salaryAttend获取的考勤数据,{}", JSONUtils.toJSONString(list));
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ import com.engine.salary.util.page.SalaryPageUtil;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.math.NumberUtils;
|
import org.apache.commons.lang3.math.NumberUtils;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
|
@ -437,14 +436,11 @@ public class SalaryStatisticsReportWrapper extends Service {
|
||||||
// 获取列头
|
// 获取列头
|
||||||
List<WeaTableColumnGroup> weaTableColumns = (List<WeaTableColumnGroup>) result.get("columns");
|
List<WeaTableColumnGroup> weaTableColumns = (List<WeaTableColumnGroup>) result.get("columns");
|
||||||
PageInfo<Map<String, Object>> page = (PageInfo<Map<String, Object>>) result.get("pageInfo");
|
PageInfo<Map<String, Object>> page = (PageInfo<Map<String, Object>>) result.get("pageInfo");
|
||||||
// 组装合计
|
Map<String, Object> countResultMap = (Map<String, Object>) result.get("countResult");
|
||||||
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, (long) user.getUID());
|
|
||||||
List<Map<String, Object>> list = page.getList();
|
List<Map<String, Object>> list = page.getList();
|
||||||
if (CollectionUtils.isNotEmpty(list) && MapUtils.isNotEmpty(countResultMap)) {
|
|
||||||
list.add(countResultMap);
|
|
||||||
}
|
|
||||||
// 获取数据
|
// 获取数据
|
||||||
List<Map<String, String>> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList());
|
List<Map<String, Object>> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue()))).collect(Collectors.toList());
|
||||||
|
records.add(countResultMap);
|
||||||
|
|
||||||
List rows = new ArrayList<>();
|
List rows = new ArrayList<>();
|
||||||
rows.add(weaTableColumns);
|
rows.add(weaTableColumns);
|
||||||
|
|
@ -466,7 +462,7 @@ public class SalaryStatisticsReportWrapper extends Service {
|
||||||
List<String> numberItemIds = salaryItemPOList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).map(salaryItemPO -> salaryItemPO.getId().toString()).collect(Collectors.toList());
|
List<String> numberItemIds = salaryItemPOList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).map(salaryItemPO -> salaryItemPO.getId().toString()).collect(Collectors.toList());
|
||||||
Map<String, SalaryStatisticsItemPO> salaryStatisticsItemMap = SalaryEntityUtil.convert2Map(salaryStatisticsItemList, statisticsItemPO -> statisticsItemPO.getId().toString());
|
Map<String, SalaryStatisticsItemPO> salaryStatisticsItemMap = SalaryEntityUtil.convert2Map(salaryStatisticsItemList, statisticsItemPO -> statisticsItemPO.getId().toString());
|
||||||
|
|
||||||
for (Map<String, String> map : records) {
|
for (Map<String, Object> map : records) {
|
||||||
List<Object> row = Lists.newArrayListWithExpectedSize(records.size());
|
List<Object> row = Lists.newArrayListWithExpectedSize(records.size());
|
||||||
head.forEach(k -> {
|
head.forEach(k -> {
|
||||||
// 获取是数值还是文本
|
// 获取是数值还是文本
|
||||||
|
|
@ -476,7 +472,7 @@ public class SalaryStatisticsReportWrapper extends Service {
|
||||||
SalaryStatisticsItemPO salaryStatisticsItemPO = salaryStatisticsItemMap.get(salaryItemId);
|
SalaryStatisticsItemPO salaryStatisticsItemPO = salaryStatisticsItemMap.get(salaryItemId);
|
||||||
if (salaryStatisticsItemPO != null) {
|
if (salaryStatisticsItemPO != null) {
|
||||||
Optional<String> textItemOptional = Arrays.stream(salaryStatisticsItemPO.getItemValue().split(",")).filter(itemId -> !numberItemIds.contains(itemId)).findFirst();
|
Optional<String> textItemOptional = Arrays.stream(salaryStatisticsItemPO.getItemValue().split(",")).filter(itemId -> !numberItemIds.contains(itemId)).findFirst();
|
||||||
row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(map.getOrDefault(k, StringUtils.EMPTY).replace(",", ""))) ? new BigDecimal(map.get(k).replace(",", "")) : map.getOrDefault(k, StringUtils.EMPTY));
|
row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(Utils.null2String(map.get(k)))) ? new BigDecimal(Utils.null2String(map.get(k))) : map.getOrDefault(k, StringUtils.EMPTY));
|
||||||
} else {
|
} else {
|
||||||
row.add(map.getOrDefault(k, StringUtils.EMPTY));
|
row.add(map.getOrDefault(k, StringUtils.EMPTY));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -382,7 +382,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa
|
||||||
List<Long> employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList());
|
List<Long> employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList());
|
||||||
List<SalaryArchiveDataDTO> salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId);
|
List<SalaryArchiveDataDTO> salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId);
|
||||||
// 转换成薪资核算人员po
|
// 转换成薪资核算人员po
|
||||||
Date salaryDate = SalaryDateUtil.dateStrToLocalTime(salaryYearMonth + "-01");
|
Date salaryDate = SalaryDateUtil.dateStrToLocalDate(salaryYearMonth + "-01");
|
||||||
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID());
|
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID());
|
||||||
|
|
||||||
//过滤掉不属于当前账套扣缴义务人的人员
|
//过滤掉不属于当前账套扣缴义务人的人员
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.util.IOUtils;
|
import org.apache.poi.util.IOUtils;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
import weaver.file.ImageFileManager;
|
import weaver.file.ImageFileManager;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
@ -1401,11 +1402,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
||||||
deleteResults = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
deleteResults = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
||||||
getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
||||||
//删除报表
|
//删除报表
|
||||||
getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
// getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds);
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isNotEmpty(salaryAcctResults)) {
|
if (CollectionUtils.isNotEmpty(salaryAcctResults)) {
|
||||||
// 处理导入薪资项的回算值
|
// 处理导入薪资项的回算值
|
||||||
handleOriginResultValue(deleteResults, salaryAcctResults);
|
handleOriginResultValue(deleteResults, salaryAcctResults);
|
||||||
|
// 备份一份加密前的值
|
||||||
|
List<SalaryAcctResultPO> list4log = new ArrayList<>();
|
||||||
|
salaryAcctResults.forEach(source -> {
|
||||||
|
SalaryAcctResultPO target = new SalaryAcctResultPO();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
list4log.add(target);
|
||||||
|
});
|
||||||
getSalaryAcctResultService(user).batchSave(salaryAcctResults);
|
getSalaryAcctResultService(user).batchSave(salaryAcctResults);
|
||||||
|
|
||||||
// 记录操作日志
|
// 记录操作日志
|
||||||
|
|
@ -1418,6 +1426,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
||||||
loggerContext.setOperateType(OperateTypeEnum.EXCEL_IMPORT.getValue());
|
loggerContext.setOperateType(OperateTypeEnum.EXCEL_IMPORT.getValue());
|
||||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "导入薪资核算数据"));
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "导入薪资核算数据"));
|
||||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "导入薪资核算数据 ") + targetName);
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "导入薪资核算数据 ") + targetName);
|
||||||
|
loggerContext.setOldValueList(list4log);
|
||||||
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||||
|
|
||||||
// //报表
|
// //报表
|
||||||
|
|
|
||||||
|
|
@ -1016,10 +1016,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
||||||
if (param.getLockStatus() == LockStatusEnum.LOCK) {
|
if (param.getLockStatus() == LockStatusEnum.LOCK) {
|
||||||
lockItemIds.add(salaryItemId);
|
lockItemIds.add(salaryItemId);
|
||||||
} else {
|
} else {
|
||||||
lockItemIds.remove(salaryItemId);
|
lockItemIds.removeIf(salaryItemId::equals);
|
||||||
}
|
}
|
||||||
|
|
||||||
salaryAcctEmployeePO.setLockItems(lockItemIds);
|
salaryAcctEmployeePO.setLockItems(Lists.newArrayList(new HashSet(lockItemIds)));
|
||||||
|
|
||||||
getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO);
|
getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO);
|
||||||
}
|
}
|
||||||
|
|
@ -1046,7 +1046,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
||||||
} else {
|
} else {
|
||||||
lockItemIds.removeAll(salaryItemIds);
|
lockItemIds.removeAll(salaryItemIds);
|
||||||
}
|
}
|
||||||
salaryAcctEmployeePO.setLockItems(lockItemIds);
|
salaryAcctEmployeePO.setLockItems(Lists.newArrayList(new HashSet(lockItemIds)));
|
||||||
getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO);
|
getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -1078,7 +1078,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
||||||
if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) {
|
if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
List<List<Long>> partition = Lists.partition((List<Long>) salaryAcctEmployeeIds, 200);
|
List<List<Long>> partition = Lists.partition(salaryAcctEmployeeIds, 200);
|
||||||
List<SalaryAcctResultPO> result = new ArrayList<>();
|
List<SalaryAcctResultPO> result = new ArrayList<>();
|
||||||
partition.forEach(empIds -> {
|
partition.forEach(empIds -> {
|
||||||
SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build();
|
SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build();
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import com.engine.salary.entity.salaryBill.dto.salaryBillViewingLimitSetting;
|
||||||
import com.engine.salary.entity.salaryBill.dto.SalaryBillWatermarkDTO;
|
import com.engine.salary.entity.salaryBill.dto.SalaryBillWatermarkDTO;
|
||||||
import com.engine.salary.entity.salaryBill.param.SalaryBaseSetSaveParam;
|
import com.engine.salary.entity.salaryBill.param.SalaryBaseSetSaveParam;
|
||||||
import com.engine.salary.entity.salaryBill.po.SalaryBillWatermarkPO;
|
import com.engine.salary.entity.salaryBill.po.SalaryBillWatermarkPO;
|
||||||
|
import com.engine.salary.enums.salarybill.MonthTypeEnum;
|
||||||
import com.engine.salary.enums.salarybill.SalaryTemplateWatermarkTypeEnum;
|
import com.engine.salary.enums.salarybill.SalaryTemplateWatermarkTypeEnum;
|
||||||
import com.engine.salary.service.SalaryBillBaseSetService;
|
import com.engine.salary.service.SalaryBillBaseSetService;
|
||||||
import com.engine.salary.service.SalaryBillWatermarkService;
|
import com.engine.salary.service.SalaryBillWatermarkService;
|
||||||
|
|
@ -31,6 +32,7 @@ import weaver.hrm.User;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static com.engine.salary.enums.salarybill.MonthTypeEnum.SALARY_DATE;
|
||||||
import static com.engine.salary.sys.constant.SalarySysConstant.*;
|
import static com.engine.salary.sys.constant.SalarySysConstant.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -113,6 +115,7 @@ public class SalaryBillBaseSetServiceImpl extends Service implements SalaryBillB
|
||||||
salaryBillViewingLimitSetting salaryBillViewingLimitDTO = saveParam.getSalaryBillViewingLimitSetting();
|
salaryBillViewingLimitSetting salaryBillViewingLimitDTO = saveParam.getSalaryBillViewingLimitSetting();
|
||||||
if (salaryBillViewingLimitDTO != null) {
|
if (salaryBillViewingLimitDTO != null) {
|
||||||
getSalarySysConfService(user).saveSettingByType(Util.null2String(salaryBillViewingLimitDTO.getLimitMonth()), SALARY_BILL_VIEWING_LIMIT_MONTH, "工资单时效性设置", "billSend");
|
getSalarySysConfService(user).saveSettingByType(Util.null2String(salaryBillViewingLimitDTO.getLimitMonth()), SALARY_BILL_VIEWING_LIMIT_MONTH, "工资单时效性设置", "billSend");
|
||||||
|
getSalarySysConfService(user).saveSettingByType(salaryBillViewingLimitDTO.getMonthType()==null?"0":salaryBillViewingLimitDTO.getMonthType().getValue().toString(), SALARY_BILL_LIMIT_MONTH_TYPE, "工资单查询限制月份类型", "billSend");
|
||||||
getSalarySysConfService(user).saveSettingByType(salaryBillViewingLimitDTO.getBurningAfterReadingMin() == null ? " " : salaryBillViewingLimitDTO.getBurningAfterReadingMin().toString(), SALARY_BILL_BURNING_AFTER_READING_MIN, "工资单查看后销毁设置", "billSend");
|
getSalarySysConfService(user).saveSettingByType(salaryBillViewingLimitDTO.getBurningAfterReadingMin() == null ? " " : salaryBillViewingLimitDTO.getBurningAfterReadingMin().toString(), SALARY_BILL_BURNING_AFTER_READING_MIN, "工资单查看后销毁设置", "billSend");
|
||||||
}
|
}
|
||||||
return StringUtils.EMPTY;
|
return StringUtils.EMPTY;
|
||||||
|
|
@ -175,7 +178,14 @@ public class SalaryBillBaseSetServiceImpl extends Service implements SalaryBillB
|
||||||
if (limitMonthSetting != null && NumberUtils.isNumber(limitMonthSetting.getConfValue())) {
|
if (limitMonthSetting != null && NumberUtils.isNumber(limitMonthSetting.getConfValue())) {
|
||||||
limitMonth = Integer.parseInt(limitMonthSetting.getConfValue());
|
limitMonth = Integer.parseInt(limitMonthSetting.getConfValue());
|
||||||
}
|
}
|
||||||
return salaryBillViewingLimitSetting.builder().limitMonth(limitMonth).build();
|
|
||||||
|
SalarySysConfPO limitMonthType = getSalarySysConfService(user).getOneByCode(SALARY_BILL_LIMIT_MONTH_TYPE);
|
||||||
|
MonthTypeEnum monthType = SALARY_DATE;
|
||||||
|
if (limitMonthType != null && NumberUtils.isNumber(limitMonthType.getConfValue())) {
|
||||||
|
monthType = MonthTypeEnum.parseByValue(Integer.parseInt(limitMonthType.getConfValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return salaryBillViewingLimitSetting.builder().monthType(monthType).limitMonth(limitMonth).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.math.NumberUtils;
|
import org.apache.commons.lang3.math.NumberUtils;
|
||||||
import weaver.conn.RecordSet;
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.Util;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -498,7 +499,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
|
||||||
String field = setting.getField();
|
String field = setting.getField();
|
||||||
String value = rs.getString(field);
|
String value = rs.getString(field);
|
||||||
setting.setValue(value);
|
setting.setValue(value);
|
||||||
extendData.put(field, value);
|
extendData.put(field, Util.formatMultiLang(value));
|
||||||
});
|
});
|
||||||
|
|
||||||
String id = rs.getString(primaryKey);
|
String id = rs.getString(primaryKey);
|
||||||
|
|
|
||||||
|
|
@ -45,10 +45,7 @@ import com.engine.salary.enums.OperateTypeEnum;
|
||||||
import com.engine.salary.enums.UserStatusEnum;
|
import com.engine.salary.enums.UserStatusEnum;
|
||||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||||
import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum;
|
import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum;
|
||||||
import com.engine.salary.enums.salarybill.BillConfimStatusEnum;
|
import com.engine.salary.enums.salarybill.*;
|
||||||
import com.engine.salary.enums.salarybill.BillReadStatusEnum;
|
|
||||||
import com.engine.salary.enums.salarybill.SalarySendStatusEnum;
|
|
||||||
import com.engine.salary.enums.salarybill.SalaryTemplateReplenishRuleEnum;
|
|
||||||
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
||||||
import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum;
|
import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum;
|
||||||
import com.engine.salary.exception.SalaryRunTimeException;
|
import com.engine.salary.exception.SalaryRunTimeException;
|
||||||
|
|
@ -493,10 +490,18 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
}
|
}
|
||||||
|
|
||||||
//工资单查看时效性
|
//工资单查看时效性
|
||||||
Date limitMonth = getLimitMonth();
|
salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting();
|
||||||
if (limitMonth != null && limitMonth.after(salarySendInfo.getSalaryMonth())) {
|
Date limitMonth = getLimitMonth(salaryBillViewingLimitSetting);
|
||||||
salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting();
|
if (limitMonth != null) {
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "仅能查看" + salaryBillViewingLimitSetting.getLimitMonth() + "月内的工资单"));
|
if (salaryBillViewingLimitSetting.getMonthType() == MonthTypeEnum.SALARY_DATE) {
|
||||||
|
if (limitMonth.after(salarySendInfo.getSalaryMonth())) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "仅能查看" + salaryBillViewingLimitSetting.getLimitMonth() + "月内的工资单"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (limitMonth.after(salarySendInfo.getSendTime())) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "仅能查看" + salaryBillViewingLimitSetting.getLimitMonth() + "月内的工资单"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取、记录首次查看时间
|
// 获取、记录首次查看时间
|
||||||
|
|
@ -692,12 +697,16 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//工资单时效性
|
||||||
private Date getLimitMonth() {
|
private Date getLimitMonth(salaryBillViewingLimitSetting salaryBillViewingLimitSetting) {
|
||||||
//工资单时效性
|
|
||||||
salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting();
|
|
||||||
if (salaryBillViewingLimitSetting.getLimitMonth() != 0) {
|
if (salaryBillViewingLimitSetting.getLimitMonth() != 0) {
|
||||||
LocalDate localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()).withDayOfMonth(1);
|
MonthTypeEnum monthType = salaryBillViewingLimitSetting.getMonthType();
|
||||||
|
LocalDate localDate;
|
||||||
|
if (monthType == MonthTypeEnum.SALARY_DATE) {
|
||||||
|
localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()+1).withDayOfMonth(1);
|
||||||
|
} else {
|
||||||
|
localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth());
|
||||||
|
}
|
||||||
return SalaryDateUtil.localDateToDate(localDate);
|
return SalaryDateUtil.localDateToDate(localDate);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -797,11 +806,25 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<SalaryMySalaryBillListDTO> mySalaryBillListPage(SalaryBillQueryParam queryParam) {
|
public PageInfo<SalaryMySalaryBillListDTO> mySalaryBillListPage(SalaryBillQueryParam queryParam) {
|
||||||
//工资单时效
|
|
||||||
queryParam.setStartSalaryMonth(getLimitMonth());
|
|
||||||
|
|
||||||
List<SalaryMySalaryBillListDTO> list = salarySendInfoMapper.mySalaryBillList(queryParam);
|
List<SalaryMySalaryBillListDTO> list = salarySendInfoMapper.mySalaryBillList(queryParam);
|
||||||
list.forEach(dto -> dto.setEmployeeId(Long.valueOf(user.getUID())));
|
|
||||||
|
//工资单时效
|
||||||
|
salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting();
|
||||||
|
Date limitMonth = getLimitMonth(salaryBillViewingLimitSetting);
|
||||||
|
list = list.stream()
|
||||||
|
.filter(dto -> {
|
||||||
|
if (limitMonth != null) {
|
||||||
|
if (salaryBillViewingLimitSetting.getMonthType() == MonthTypeEnum.SALARY_DATE) {
|
||||||
|
return !limitMonth.after(dto.getSalaryYearMonth());
|
||||||
|
} else {
|
||||||
|
return !limitMonth.after(dto.getSendTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
.peek(dto -> dto.setEmployeeId((long) user.getUID()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
PageInfo<SalaryMySalaryBillListDTO> pageInfo = new PageInfo<>(list, SalaryMySalaryBillListDTO.class);
|
PageInfo<SalaryMySalaryBillListDTO> pageInfo = new PageInfo<>(list, SalaryMySalaryBillListDTO.class);
|
||||||
pageInfo.setTotal(list.size());
|
pageInfo.setTotal(list.size());
|
||||||
pageInfo.setPageNum(queryParam.getCurrent());
|
pageInfo.setPageNum(queryParam.getCurrent());
|
||||||
|
|
@ -817,11 +840,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
Set<Long> otherSalaryAcctRecordIds = null;
|
Set<Long> otherSalaryAcctRecordIds = null;
|
||||||
if (queryParam.getMergeCountTax() != null && queryParam.getMergeCountTax()) {
|
if (queryParam.getMergeCountTax() != null && queryParam.getMergeCountTax()) {
|
||||||
//查询关联的核酸id,这里认为一次发放只对应一条核算记录
|
//查询关联的核酸id,这里认为一次发放只对应一条核算记录
|
||||||
Long salaryAccRecordId =
|
Long salaryAccRecordId = salarySendInfoMapper.listSalaryAccRecordIds(queryParam).stream().findFirst().orElse(null);
|
||||||
salarySendInfoMapper.listSalaryAccRecordIds(queryParam).stream().findFirst().orElse(null);
|
|
||||||
// 查询合并计税的其他薪资核算记录
|
// 查询合并计税的其他薪资核算记录
|
||||||
List<SalaryAcctRecordPO> otherSalaryAcctRecordPOS =
|
List<SalaryAcctRecordPO> otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAccRecordId);
|
||||||
getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAccRecordId);
|
|
||||||
if (CollectionUtils.isEmpty(otherSalaryAcctRecordPOS)) {
|
if (CollectionUtils.isEmpty(otherSalaryAcctRecordPOS)) {
|
||||||
return new PageInfo<>();
|
return new PageInfo<>();
|
||||||
}
|
}
|
||||||
|
|
@ -832,8 +853,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<SalarySendDetailListDTO> list = getSalarySendInfoMapper().detailList(queryParam, otherSalaryAcctRecordIds);
|
List<SalarySendDetailListDTO> list = getSalarySendInfoMapper().detailList(queryParam, otherSalaryAcctRecordIds);
|
||||||
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
|
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySendDetailListDTO.class);
|
||||||
list, SalarySendDetailListDTO.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -859,9 +879,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
}
|
}
|
||||||
companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(currentEmployeeId + ""));
|
companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(currentEmployeeId + ""));
|
||||||
}
|
}
|
||||||
return theme
|
return theme.replace("${companyName}", companyName).replace("${salaryMonth}", new SimpleDateFormat("yyyy年MM月").format(salaryMonth));
|
||||||
.replace("${companyName}", companyName)
|
|
||||||
.replace("${salaryMonth}", new SimpleDateFormat("yyyy年MM月").format(salaryMonth));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -873,30 +891,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
*/
|
*/
|
||||||
private SalaryTemplatePO buildSalaryTemplateContent(String salaryTemplateContent) {
|
private SalaryTemplatePO buildSalaryTemplateContent(String salaryTemplateContent) {
|
||||||
Map<String, Object> map = JsonUtil.parseMap(salaryTemplateContent, Object.class);
|
Map<String, Object> map = JsonUtil.parseMap(salaryTemplateContent, Object.class);
|
||||||
SalaryTemplatePO build = SalaryTemplatePO.builder()
|
SalaryTemplatePO build = SalaryTemplatePO.builder().id(Long.valueOf(map.getOrDefault("id", "0").toString())).ackFeedbackStatus(Integer.valueOf(map.getOrDefault("ackFeedbackStatus", "0").toString())).autoAckDays(Integer.valueOf(map.getOrDefault("autoAckDays", "0").toString())).feedbackUrl(map.getOrDefault("feedbackUrl", "").toString()).mobileFeedbackUrl(map.getOrDefault("mobileFeedbackUrl", "").toString()).name(map.getOrDefault("name", "").toString()).salarySobId(Long.valueOf(map.getOrDefault("salarySobId", "0").toString())).useType(Integer.valueOf(map.getOrDefault("useType", "0").toString())).description(map.getOrDefault("description", "").toString()).emailStatus(Integer.valueOf(map.getOrDefault("emailStatus", "0").toString())).sendEmailId(Long.valueOf(map.getOrDefault("sendEmailId", "0").toString())).msgStatus(Integer.valueOf(map.getOrDefault("msgStatus", "0").toString())).salaryWatermark(map.getOrDefault("salaryWatermark", StringUtils.EMPTY).toString()).theme(map.getOrDefault("theme", "").toString()).background(map.getOrDefault("background", "").toString()).textContent(map.getOrDefault("textContent", "").toString()).textContentPosition(Integer.valueOf(map.getOrDefault("textContentPosition", "0").toString())).salaryItemNullStatus(Integer.valueOf(map.getOrDefault("salaryItemNullStatus", "0").toString())).salaryItemZeroStatus(Integer.valueOf(map.getOrDefault("salaryItemZeroStatus", "0").toString())).salaryItemSetting(map.getOrDefault("salaryItemSetting", "").toString()).replenishName(map.getOrDefault("replenishName", "").toString()).replenishSalaryItemSetting(map.getOrDefault("replenishSalaryItemSetting", "").toString()).build();
|
||||||
.id(Long.valueOf(map.getOrDefault("id", "0").toString()))
|
|
||||||
.ackFeedbackStatus(Integer.valueOf(map.getOrDefault("ackFeedbackStatus", "0").toString()))
|
|
||||||
.autoAckDays(Integer.valueOf(map.getOrDefault("autoAckDays", "0").toString()))
|
|
||||||
.feedbackUrl(map.getOrDefault("feedbackUrl", "").toString())
|
|
||||||
.mobileFeedbackUrl(map.getOrDefault("mobileFeedbackUrl", "").toString())
|
|
||||||
.name(map.getOrDefault("name", "").toString())
|
|
||||||
.salarySobId(Long.valueOf(map.getOrDefault("salarySobId", "0").toString()))
|
|
||||||
.useType(Integer.valueOf(map.getOrDefault("useType", "0").toString()))
|
|
||||||
.description(map.getOrDefault("description", "").toString())
|
|
||||||
.emailStatus(Integer.valueOf(map.getOrDefault("emailStatus", "0").toString()))
|
|
||||||
.sendEmailId(Long.valueOf(map.getOrDefault("sendEmailId", "0").toString()))
|
|
||||||
.msgStatus(Integer.valueOf(map.getOrDefault("msgStatus", "0").toString()))
|
|
||||||
.salaryWatermark(map.getOrDefault("salaryWatermark", StringUtils.EMPTY).toString())
|
|
||||||
.theme(map.getOrDefault("theme", "").toString())
|
|
||||||
.background(map.getOrDefault("background", "").toString())
|
|
||||||
.textContent(map.getOrDefault("textContent", "").toString())
|
|
||||||
.textContentPosition(Integer.valueOf(map.getOrDefault("textContentPosition", "0").toString()))
|
|
||||||
.salaryItemNullStatus(Integer.valueOf(map.getOrDefault("salaryItemNullStatus", "0").toString()))
|
|
||||||
.salaryItemZeroStatus(Integer.valueOf(map.getOrDefault("salaryItemZeroStatus", "0").toString()))
|
|
||||||
.salaryItemSetting(map.getOrDefault("salaryItemSetting", "").toString())
|
|
||||||
.replenishName(map.getOrDefault("replenishName", "").toString())
|
|
||||||
.replenishSalaryItemSetting(map.getOrDefault("replenishSalaryItemSetting", "").toString())
|
|
||||||
.build();
|
|
||||||
Object feedbackStatus = map.get("feedbackStatus");
|
Object feedbackStatus = map.get("feedbackStatus");
|
||||||
if (feedbackStatus == null || StringUtils.isBlank(feedbackStatus.toString())) {
|
if (feedbackStatus == null || StringUtils.isBlank(feedbackStatus.toString())) {
|
||||||
build.setFeedbackStatus(build.getAckFeedbackStatus());
|
build.setFeedbackStatus(build.getAckFeedbackStatus());
|
||||||
|
|
@ -924,6 +919,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
.birthday(simpleEmployee.getBirthday())
|
.birthday(simpleEmployee.getBirthday())
|
||||||
.departmentId(simpleEmployee.getDepartmentId())
|
.departmentId(simpleEmployee.getDepartmentId())
|
||||||
.departmentName(simpleEmployee.getDepartmentName())
|
.departmentName(simpleEmployee.getDepartmentName())
|
||||||
|
.subcompanyId(simpleEmployee.getSubcompanyid())
|
||||||
.subcompanyName(simpleEmployee.getSubcompanyName())
|
.subcompanyName(simpleEmployee.getSubcompanyName())
|
||||||
.email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail())
|
.email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail())
|
||||||
.jobcall(simpleEmployee.getJobcall())
|
.jobcall(simpleEmployee.getJobcall())
|
||||||
|
|
@ -1010,8 +1006,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
map.put("jobNum", Objects.equals(employeeType, 1) ? extEmp.getWorkcode() : e.getJobNum());
|
map.put("jobNum", Objects.equals(employeeType, 1) ? extEmp.getWorkcode() : e.getJobNum());
|
||||||
map.put("email", Objects.equals(employeeType, 1) ? extEmp.getEmail() : e.getEmail());
|
map.put("email", Objects.equals(employeeType, 1) ? extEmp.getEmail() : e.getEmail());
|
||||||
salaryItems.forEach(i -> {
|
salaryItems.forEach(i -> {
|
||||||
Optional<SalaryAcctResultPO> optional = salaryAccountingResults.stream()
|
Optional<SalaryAcctResultPO> optional = salaryAccountingResults.stream().filter(r -> r.getEmployeeId().equals(e.getEmployeeId()) && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))).findFirst();
|
||||||
.filter(r -> r.getEmployeeId().equals(e.getEmployeeId()) && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))).findFirst();
|
|
||||||
map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, optional.isPresent() ? optional.get().getResultValue() : "");
|
map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, optional.isPresent() ? optional.get().getResultValue() : "");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -1028,8 +1023,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> buildDetailList(List<SalarySendInfoListDTO> list,
|
public List<Map<String, Object>> buildDetailList(List<SalarySendInfoListDTO> list, List<SalaryAcctEmployeePO> salaryAcctEmployees, List<SalaryAcctResultPO> salaryAcctResultValues) {
|
||||||
List<SalaryAcctEmployeePO> salaryAcctEmployees, List<SalaryAcctResultPO> salaryAcctResultValues) {
|
|
||||||
List<Map<String, Object>> listMaps = new ArrayList<>();
|
List<Map<String, Object>> listMaps = new ArrayList<>();
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
return listMaps;
|
return listMaps;
|
||||||
|
|
@ -1126,19 +1120,15 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
}
|
}
|
||||||
// 正常模板
|
// 正常模板
|
||||||
if (!isReplenish && StringUtils.isNotEmpty(salaryTemplate.getSalaryItemSetting())) {
|
if (!isReplenish && StringUtils.isNotEmpty(salaryTemplate.getSalaryItemSetting())) {
|
||||||
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getSalaryItemSetting(),
|
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||||
SalaryTemplateSalaryItemSetListDTO.class);
|
|
||||||
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> {
|
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> {
|
||||||
salaryItems.addAll(e.getItems());
|
salaryItems.addAll(e.getItems());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 补发模板
|
// 补发模板
|
||||||
if (isReplenish && StringUtils.isNotEmpty(salaryTemplate.getReplenishSalaryItemSetting())) {
|
if (isReplenish && StringUtils.isNotEmpty(salaryTemplate.getReplenishSalaryItemSetting())) {
|
||||||
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getReplenishSalaryItemSetting(),
|
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||||
SalaryTemplateSalaryItemSetListDTO.class);
|
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> salaryItems.addAll(e.getItems()));
|
||||||
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e ->
|
|
||||||
salaryItems.addAll(e.getItems())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
return salaryItems;
|
return salaryItems;
|
||||||
}
|
}
|
||||||
|
|
@ -1154,8 +1144,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
|
|
||||||
if (param.getSalarySendRangeIds() != null) {
|
if (param.getSalarySendRangeIds() != null) {
|
||||||
//如果传了范围id,则使用范围id发放
|
//如果传了范围id,则使用范围id发放
|
||||||
ids = getSalarySendRangeService(user)
|
ids = getSalarySendRangeService(user).getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT);
|
||||||
.getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT);
|
|
||||||
if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截
|
if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截
|
||||||
throw new SalaryRunTimeException("工资发放范围内没有匹配员工");
|
throw new SalaryRunTimeException("工资发放范围内没有匹配员工");
|
||||||
}
|
}
|
||||||
|
|
@ -1406,8 +1395,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
// 获取可撤回的工资单
|
// 获取可撤回的工资单
|
||||||
if (param.getSalarySendRangeIds() != null) {
|
if (param.getSalarySendRangeIds() != null) {
|
||||||
//如果传了范围id,则使用范围id撤回
|
//如果传了范围id,则使用范围id撤回
|
||||||
ids = getSalarySendRangeService(user)
|
ids = getSalarySendRangeService(user).getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.WITHDRAW);
|
||||||
.getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.WITHDRAW);
|
|
||||||
if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截
|
if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截
|
||||||
throw new SalaryRunTimeException("工资撤回范围内没有匹配的员工");
|
throw new SalaryRunTimeException("工资撤回范围内没有匹配的员工");
|
||||||
}
|
}
|
||||||
|
|
@ -1580,7 +1568,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
header.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
header.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
||||||
Map<String, SalaryTemplateSalaryItemListDTO> salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX);
|
Map<String, SalaryTemplateSalaryItemListDTO> salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX);
|
||||||
List<SalaryTemplateSalaryItemListDTO> sortedSalaryItems = new ArrayList<>();
|
List<SalaryTemplateSalaryItemListDTO> sortedSalaryItems = new ArrayList<>();
|
||||||
for(String column : queryParam.getColumns()) {
|
for (String column : queryParam.getColumns()) {
|
||||||
if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) {
|
if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) {
|
||||||
SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column);
|
SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column);
|
||||||
if (salaryTemplateSalaryItemListDTO != null) {
|
if (salaryTemplateSalaryItemListDTO != null) {
|
||||||
|
|
@ -1681,8 +1669,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
|
|
||||||
SalaryAcctResultQueryParam queryParam = SalaryAcctResultQueryParam.builder().salaryAcctRecordId(salarySendPO.getSalaryAccountingId()).build();
|
SalaryAcctResultQueryParam queryParam = SalaryAcctResultQueryParam.builder().salaryAcctRecordId(salarySendPO.getSalaryAccountingId()).build();
|
||||||
// 查询薪资核算人员
|
// 查询薪资核算人员
|
||||||
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user)
|
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam);
|
||||||
.listByResultQueryParam(queryParam);
|
|
||||||
|
|
||||||
if (org.apache.commons.collections4.CollectionUtils.isEmpty(salaryAcctEmployeePOS)) {
|
if (org.apache.commons.collections4.CollectionUtils.isEmpty(salaryAcctEmployeePOS)) {
|
||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
|
|
@ -1714,13 +1701,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
Map<Long, List<SalaryAcctResultPO>> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
|
Map<Long, List<SalaryAcctResultPO>> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
|
||||||
salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> {
|
salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> {
|
||||||
BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId()))
|
BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId())).orElse(new ArrayList<>()).stream().map(SalaryAcctResultPO::getResultValue).filter(NumberUtils::isCreatable).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.orElse(new ArrayList<>())
|
|
||||||
.stream()
|
|
||||||
.map(SalaryAcctResultPO::getResultValue)
|
|
||||||
.filter(NumberUtils::isCreatable)
|
|
||||||
.map(BigDecimal::new)
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
map.put(item.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap));
|
map.put(item.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap));
|
||||||
});
|
});
|
||||||
return map;
|
return map;
|
||||||
|
|
@ -1814,8 +1795,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SalarySendInfoPO> listUnConfirmedSendInfo(List<Long> salarySobIds) {
|
public List<SalarySendInfoPO> listUnConfirmedSendInfo(List<Long> salarySobIds) {
|
||||||
if (CollectionUtils.isEmpty(salarySobIds))
|
if (CollectionUtils.isEmpty(salarySobIds)) return Collections.emptyList();
|
||||||
return Collections.emptyList();
|
|
||||||
return getSalarySendInfoMapper().listUnConfirmedSendInfo(salarySobIds);
|
return getSalarySendInfoMapper().listUnConfirmedSendInfo(salarySobIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1916,18 +1896,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
List<SalaryTemplateSalaryItemSetListDTO> itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList());
|
List<SalaryTemplateSalaryItemSetListDTO> itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList());
|
||||||
List<Map<String, Object>> finalSalaryAcctResultS = salaryAcctResultS;
|
List<Map<String, Object>> finalSalaryAcctResultS = salaryAcctResultS;
|
||||||
itemSetListDTOS.stream().forEach(item -> {
|
itemSetListDTOS.stream().forEach(item -> {
|
||||||
item.getItems()
|
item.getItems().forEach(e -> {
|
||||||
.forEach(e -> {
|
if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) {
|
||||||
if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) {
|
e.setSalaryItemValue("");
|
||||||
e.setSalaryItemValue("");
|
} else {
|
||||||
} else {
|
Object o = finalSalaryAcctResultS.stream().filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst().orElse(new HashMap<>()).get("resultValue");
|
||||||
Object o = finalSalaryAcctResultS.stream()
|
e.setSalaryItemValue(o == null ? "" : (String) o);
|
||||||
.filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst()
|
}
|
||||||
.orElse(new HashMap<>())
|
});
|
||||||
.get("resultValue");
|
|
||||||
e.setSalaryItemValue(o == null ? "" : (String) o);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1948,10 +1924,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
||||||
if (Objects.equals(1, salaryTemplate.getSalaryItemZeroStatus())) {
|
if (Objects.equals(1, salaryTemplate.getSalaryItemZeroStatus())) {
|
||||||
for (SalaryTemplateSalaryItemSetListDTO itemSetListDTO : itemSetListDTOS) {
|
for (SalaryTemplateSalaryItemSetListDTO itemSetListDTO : itemSetListDTOS) {
|
||||||
List<SalaryTemplateSalaryItemListDTO> items = itemSetListDTO.getItems();
|
List<SalaryTemplateSalaryItemListDTO> items = itemSetListDTO.getItems();
|
||||||
List<SalaryTemplateSalaryItemListDTO> collect = items.stream()
|
List<SalaryTemplateSalaryItemListDTO> collect = items.stream().filter(item -> SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue()) == null || BigDecimal.ZERO.compareTo(SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue())) != 0).collect(Collectors.toList());
|
||||||
.filter(item -> SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue()) == null
|
|
||||||
|| BigDecimal.ZERO.compareTo(SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue())) != 0)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
itemSetListDTO.setItems(collect);
|
itemSetListDTO.setItems(collect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,11 @@ public class SalarySysConstant {
|
||||||
*/
|
*/
|
||||||
public static final String SALARY_BILL_VIEWING_LIMIT_MONTH = "SALARY_BILL_VIEWING_LIMIT_MONTH";
|
public static final String SALARY_BILL_VIEWING_LIMIT_MONTH = "SALARY_BILL_VIEWING_LIMIT_MONTH";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工资单查询限制月份类型
|
||||||
|
*/
|
||||||
|
public static final String SALARY_BILL_LIMIT_MONTH_TYPE = "SALARY_BILL_LIMIT_MONTH_TYPE";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首次查看后多少分钟不能查看工资单
|
* 首次查看后多少分钟不能查看工资单
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue