Merge branch 'release/2.7.4.2304.02' into feature/公式
This commit is contained in:
commit
9dc41706b2
|
|
@ -40,9 +40,7 @@ import com.engine.salary.mapper.sicategory.ICategoryMapper;
|
|||
import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper;
|
||||
import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper;
|
||||
import com.engine.salary.mapper.taxagent.TaxAgentMapper;
|
||||
import com.engine.salary.util.SalaryAssert;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryFormItemUtil;
|
||||
import com.engine.salary.util.*;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
|
|
@ -649,6 +647,13 @@ public class SIArchivesBiz {
|
|||
InsuranceArchivesOtherSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesOtherSaveParam.class);
|
||||
SalaryAssert.notNull("员工id为空", param, param.getEmployeeId());
|
||||
|
||||
if (param.getOtherStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getOtherStartTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542532, "其他福利起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
if (param.getOtherEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getOtherEndTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542533, "其他福利最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
// List<InsuranceArchivesOtherSchemePO> oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(param.getEmployeeId()));
|
||||
List<InsuranceArchivesOtherSchemePO> oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
|
||||
.employeeId(param.getEmployeeId())
|
||||
|
|
@ -700,6 +705,13 @@ public class SIArchivesBiz {
|
|||
InsuranceArchivesFundSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesFundSaveParam.class);
|
||||
SalaryAssert.notNull("员工id为空", param, param.getEmployeeId());
|
||||
|
||||
if (param.getFundStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getFundStartTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542530, "公积金起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
if (param.getFundEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getFundEndTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542531, "公积金最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
// List<InsuranceArchivesFundSchemePO> oldFundInfoList = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(param.getEmployeeId()));
|
||||
List<InsuranceArchivesFundSchemePO> oldFundInfoList = fundSchemeMapper.getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
|
||||
.employeeId(param.getEmployeeId())
|
||||
|
|
@ -755,6 +767,15 @@ public class SIArchivesBiz {
|
|||
|
||||
InsuranceArchivesSocialSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesSocialSaveParam.class);
|
||||
SalaryAssert.notNull("员工id为空", param, param.getEmployeeId());
|
||||
|
||||
boolean c = SalaryDateUtil.checkYearMonth(param.getSocialStartTime());
|
||||
if (param.getSocialStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getSocialStartTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542528, "社保起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
if (param.getSocialEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getSocialEndTime())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542529, "社保最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
// //删除社保数据
|
||||
// socialSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId()));
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.engine.salary.maintainer.salaryacct.SalaryAcctManager;
|
|||
import com.engine.salary.maintainer.salaryacct.SalaryAcctSupplementParam;
|
||||
import com.engine.salary.util.ResponseResult;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
|
|
@ -16,7 +17,9 @@ import javax.ws.rs.Path;
|
|||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 累计专项附加扣除
|
||||
|
|
@ -48,9 +51,25 @@ public class MaintainerController {
|
|||
@Path("/acct/supplement")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String supplementAcctRecord(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
String type = request.getParameter("type");
|
||||
String salaryAcctRecordStrIds = request.getParameter("salaryAcctRecordStrIds");
|
||||
String salarySobStrIds = request.getParameter("salarySobStrIds");
|
||||
String salaryItemStrIds = request.getParameter("salaryItemStrIds");
|
||||
SalaryAcctSupplementParam queryParam = SalaryAcctSupplementParam.builder()
|
||||
.salaryAcctRecordId(Long.parseLong(request.getParameter("salaryAcctRecordId")))
|
||||
.salaryItemStrIds(request.getParameter("salaryItemStrIds")).build();
|
||||
.type(type)
|
||||
.salaryAcctRecordStrIds(salaryAcctRecordStrIds)
|
||||
.salarySobStrIds(salarySobStrIds)
|
||||
.salaryItemStrIds(salaryItemStrIds)
|
||||
.build();
|
||||
if (StringUtils.isNotBlank(salaryAcctRecordStrIds)) {
|
||||
queryParam.setSalaryAcctRecordIds(Arrays.stream(salaryAcctRecordStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(salarySobStrIds)) {
|
||||
queryParam.setSalarySobIds(Arrays.stream(salarySobStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(salaryItemStrIds)) {
|
||||
queryParam.setSalaryItemIds(Arrays.stream(salaryItemStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
||||
}
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryAcctSupplementParam, Map<String, Object>>(user).run(getSalaryAcctManager(user)::supplementAcctRecord, queryParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,9 +104,6 @@ public class SalaryAcctManager extends Service {
|
|||
return ServiceUtil.getService(SalarySobAdjustRuleServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobItemHideService getSalarySobItemHideService(User user) {
|
||||
return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctCalculateService getSalaryAcctCalculateService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctCalculateServiceImpl.class, user);
|
||||
|
|
@ -151,14 +148,41 @@ public class SalaryAcctManager extends Service {
|
|||
public void supplementAcctRecord(SalaryAcctSupplementParam param) {
|
||||
ValidUtil.doValidator(param);
|
||||
|
||||
List<Long> salaryItemIds = Arrays.stream(param.getSalaryItemStrIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
|
||||
param.setSalaryItemIds(salaryItemIds);
|
||||
|
||||
if(CollectionUtils.isEmpty(salaryItemIds)){
|
||||
throw new SalaryRunTimeException("薪资项目为空!");
|
||||
//待补算的记录
|
||||
List<SalaryAcctRecordPO> salaryAcctRecordPOS = new ArrayList<>();
|
||||
|
||||
if (StringUtils.equals(param.getType(), "sob")) {
|
||||
|
||||
List<Long> salarySobIds = param.getSalarySobIds();
|
||||
|
||||
if (CollectionUtils.isEmpty(salarySobIds)) {
|
||||
throw new SalaryRunTimeException("补算账套为空!");
|
||||
}
|
||||
//获取账套下面所有的核算记录
|
||||
salaryAcctRecordPOS = getSalaryAcctRecordService(user).listBySalarySobIds(salarySobIds);
|
||||
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) {
|
||||
throw new SalaryRunTimeException("账套下不存在核算记录");
|
||||
}
|
||||
|
||||
} else if (StringUtils.equals(param.getType(), "record")) {
|
||||
|
||||
List<Long> salaryAcctRecordIds = param.getSalaryAcctRecordIds();
|
||||
|
||||
salaryAcctRecordPOS = getSalaryAcctRecordService(user).listByIds(salaryAcctRecordIds);
|
||||
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) {
|
||||
throw new SalaryRunTimeException("核算记录不存在");
|
||||
}
|
||||
} else {
|
||||
throw new SalaryRunTimeException("补算方式异常!");
|
||||
}
|
||||
|
||||
calculate(param);
|
||||
salaryAcctRecordPOS.forEach(salaryAcctRecordPO -> {
|
||||
param.setSalaryAcctRecordId(salaryAcctRecordPO.getId());
|
||||
calculate(param);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -170,12 +194,15 @@ public class SalaryAcctManager extends Service {
|
|||
public void calculate(SalaryAcctSupplementParam calculateParam) {
|
||||
log.info("补算开始{}", calculateParam);
|
||||
|
||||
//核算记录
|
||||
Long salaryAcctRecordId = calculateParam.getSalaryAcctRecordId();
|
||||
|
||||
//当前登陆人员
|
||||
DataCollectionEmployee simpleEmployee = new DataCollectionEmployee();
|
||||
simpleEmployee.setEmployeeId((long) user.getUID());
|
||||
|
||||
// 检查是否正在核算中
|
||||
SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId());
|
||||
SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId);
|
||||
if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -188,20 +215,16 @@ public class SalaryAcctManager extends Service {
|
|||
.setProgress(BigDecimal.ZERO)
|
||||
.setStatus(true)
|
||||
.setMessage(StringUtils.EMPTY);
|
||||
getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), initProgress);
|
||||
new Thread() {
|
||||
public void run() {
|
||||
calculate(calculateParam, simpleEmployee);
|
||||
}
|
||||
}.start();
|
||||
|
||||
getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, initProgress);
|
||||
calculate(calculateParam, simpleEmployee);
|
||||
}
|
||||
|
||||
|
||||
public void calculate(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) {
|
||||
Long salaryAcctRecordId = calculateParam.getSalaryAcctRecordId();
|
||||
try {
|
||||
// 1、查询薪资核算记录
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId());
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
|
||||
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||
}
|
||||
|
|
@ -211,7 +234,7 @@ public class SalaryAcctManager extends Service {
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资账套不存在或已被删除"));
|
||||
}
|
||||
// 2、查询薪资核算记录的薪资周期、考勤周期等
|
||||
SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(calculateParam.getSalaryAcctRecordId());
|
||||
SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordId);
|
||||
// 3、查询薪资核算记录所用薪资账套的薪资项目副本
|
||||
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
|
||||
|
|
@ -231,11 +254,24 @@ public class SalaryAcctManager extends Service {
|
|||
// 7、查询考勤引用的所有字段
|
||||
List<AttendQuoteFieldListDTO> attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll();
|
||||
|
||||
//核算锁定值
|
||||
List<Long> lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds();
|
||||
// //核算锁定值
|
||||
// List<Long> lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds();
|
||||
// Map<String, SalaryAcctResultPO> acctResults = new HashMap<>();
|
||||
// if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) {
|
||||
// List<SalaryAcctResultPO> acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId));
|
||||
// acctResults = Optional.ofNullable(acctResultPOS)
|
||||
// .orElse(new ArrayList<>())
|
||||
// .stream()
|
||||
// .filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId()))
|
||||
// .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a));
|
||||
// }
|
||||
|
||||
//将除重新核算的项目外的所有的值都锁定
|
||||
List<Long> salaryItemIds = calculateParam.getSalaryItemIds();
|
||||
List<Long> lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList());
|
||||
Map<String, SalaryAcctResultPO> acctResults = new HashMap<>();
|
||||
if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) {
|
||||
List<SalaryAcctResultPO> acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(calculateParam.getSalaryAcctRecordId()));
|
||||
List<SalaryAcctResultPO> acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId));
|
||||
acctResults = Optional.ofNullable(acctResultPOS)
|
||||
.orElse(new ArrayList<>())
|
||||
.stream()
|
||||
|
|
@ -243,6 +279,7 @@ public class SalaryAcctManager extends Service {
|
|||
.collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a));
|
||||
}
|
||||
|
||||
|
||||
// 8、查询公式详情
|
||||
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
||||
formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));
|
||||
|
|
@ -261,7 +298,7 @@ public class SalaryAcctManager extends Service {
|
|||
}
|
||||
// 11.1、初始化进度
|
||||
SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO().setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中")).setTitleLabelId(97515L).setTotalQuantity(salaryAcctEmployeePOS.size() * 2 + 1).setCalculatedQuantity(0).setProgress(BigDecimal.ZERO).setStatus(true).setMessage(StringUtils.EMPTY);
|
||||
getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), initProgress);
|
||||
getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, initProgress);
|
||||
// 12、对薪资核算人员进行拆分
|
||||
List<List<SalaryAcctEmployeePO>> partition = Lists.partition(salaryAcctEmployeePOS, 5000);
|
||||
// 12.1、监控子线程的任务执行
|
||||
|
|
@ -307,7 +344,7 @@ public class SalaryAcctManager extends Service {
|
|||
if (!allSuccess) {
|
||||
// 薪资核算实现的线程的错误信息
|
||||
String errorMsg = calculateResults.stream().filter(result -> !result.isStatus()).map(SalaryAcctCalculateBO.Result::getErrMsg).collect(Collectors.joining("|"));
|
||||
getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), errorMsg);
|
||||
getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, errorMsg);
|
||||
// 删除薪资核算临时存储表中的数据
|
||||
getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey);
|
||||
return;
|
||||
|
|
@ -315,11 +352,11 @@ public class SalaryAcctManager extends Service {
|
|||
// 15、处理核算结果临时表数据
|
||||
handleSalaryAcctResultTemp(calculateParam, calculateKey);
|
||||
|
||||
getSalaryAcctProgressService(user).finish("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), true);
|
||||
getSalaryAcctProgressService(user).finish("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, true);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info("薪资核算出错:{}", e.getMessage(), e);
|
||||
getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage());
|
||||
getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -336,15 +373,14 @@ public class SalaryAcctManager extends Service {
|
|||
List<Long> salaryItemIds = calculateParam.getSalaryItemIds();
|
||||
getSalaryAcctResultMapper().deleteBySalaryAcctRecordIdAndSalaryItemIds(calculateParam.getSalaryAcctRecordId(), salaryItemIds);
|
||||
// 保存薪资的薪资核算结果
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = salaryAcctResultTempPOS.stream().filter(salaryAcctResultTempPO -> salaryItemIds.contains(salaryAcctResultTempPO.getSalaryItemId())).map(e -> {
|
||||
SalaryAcctResultPO salaryAcctResult = new SalaryAcctResultPO();
|
||||
BeanUtils.copyProperties(e, salaryAcctResult);
|
||||
return salaryAcctResult;
|
||||
}).collect(Collectors.toList());
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = salaryAcctResultTempPOS.stream()
|
||||
.filter(salaryAcctResultTempPO -> salaryItemIds.contains(salaryAcctResultTempPO.getSalaryItemId()))
|
||||
.map(e -> {
|
||||
SalaryAcctResultPO salaryAcctResult = new SalaryAcctResultPO();
|
||||
BeanUtils.copyProperties(e, salaryAcctResult);
|
||||
return salaryAcctResult;
|
||||
}).collect(Collectors.toList());
|
||||
getSalaryAcctResultService(user).batchSave(salaryAcctResultPOS);
|
||||
//保存核算报表数据
|
||||
// List<SalaryAcctResultReportPO> salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2ReportPO(salaryAcctResultTempPOS, calculateParam.getEmps());
|
||||
// getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS);
|
||||
// 删除薪资核算临时存储表中的数据
|
||||
getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,12 +22,33 @@ import java.util.List;
|
|||
@AllArgsConstructor
|
||||
public class SalaryAcctSupplementParam {
|
||||
|
||||
@DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空")
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
@DataCheck(require = true,message = "参数错误,薪资项目ID不能为空")
|
||||
//前端传入
|
||||
/**
|
||||
* 补算方式,0按核算记录进行补充核算,1按账套进行补充核算
|
||||
*/
|
||||
@DataCheck(require = true, message = "补算方式为空")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 按核算记录进行补充核算
|
||||
*/
|
||||
private List<Long> salaryAcctRecordIds;
|
||||
private String salaryAcctRecordStrIds;
|
||||
|
||||
/**
|
||||
* 按账套进行补充核算
|
||||
*/
|
||||
private List<Long> salarySobIds;
|
||||
private String salarySobStrIds;
|
||||
|
||||
/**
|
||||
* 待核算的项目
|
||||
*/
|
||||
@DataCheck(require = true, message = "补算项目为空")
|
||||
private List<Long> salaryItemIds;
|
||||
private String salaryItemStrIds;
|
||||
|
||||
private List<Long> salaryItemIds;
|
||||
|
||||
//核算使用
|
||||
private Long salaryAcctRecordId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
package com.engine.salary.maintainer.salaryacct;
|
||||
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
|
||||
public abstract class SupAcctThread implements Runnable {
|
||||
|
||||
private SalaryAcctSupplementParam calculateParam;
|
||||
|
||||
private DataCollectionEmployee simpleEmployee;
|
||||
|
||||
public SalaryAcctSupplementParam getCalculateParam() {
|
||||
return calculateParam;
|
||||
}
|
||||
|
||||
public void setCalculateParam(SalaryAcctSupplementParam calculateParam) {
|
||||
this.calculateParam = calculateParam;
|
||||
}
|
||||
|
||||
public DataCollectionEmployee getSimpleEmployee() {
|
||||
return simpleEmployee;
|
||||
}
|
||||
|
||||
public void setSimpleEmployee(DataCollectionEmployee simpleEmployee) {
|
||||
this.simpleEmployee = simpleEmployee;
|
||||
}
|
||||
|
||||
public SupAcctThread(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) {
|
||||
this.calculateParam = calculateParam;
|
||||
this.simpleEmployee = simpleEmployee;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
execute(calculateParam, simpleEmployee);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void execute(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) throws Exception;
|
||||
}
|
||||
|
|
@ -344,7 +344,8 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
.stream().map(TaxAgentPO::getId)
|
||||
.collect(Collectors.toSet());
|
||||
return salaryItems.stream()
|
||||
.filter(e -> e.getUseInEmployeeSalary() == 0)
|
||||
//薪资项目取消过滤档案,使得导入功能一页面为准
|
||||
// .filter(e -> e.getUseInEmployeeSalary() == 0)
|
||||
.filter(e -> getSalaryItemService(user).filterInRange(taxAgentIds, e))
|
||||
.map(e -> {
|
||||
FormulaVar formulaVar = new FormulaVar();
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public class SalaryDateUtil {
|
|||
/**
|
||||
* yyyy-MM
|
||||
**/
|
||||
private static final String MONTH_REGEX = "^([1-9]\\d{3})-(([0]{0,1}[1-9])|([1][0-2]))$";
|
||||
private static final String MONTH_REGEX = "^([1-9]\\d{3})-(([0][1-9])|([1][0-2]))$";
|
||||
/**
|
||||
* yyyy-MM-dd
|
||||
**/
|
||||
|
|
|
|||
Loading…
Reference in New Issue