核算进度
This commit is contained in:
parent
ad6ab6daff
commit
f2f678c6d1
|
|
@ -0,0 +1,7 @@
|
|||
package com.api.salary.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
@Path("/bs/hrmsalary/progress")
|
||||
public class SalaryProgressController extends com.engine.salary.web.SalaryProgressController{
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.engine.salary.cache;
|
||||
|
||||
/**
|
||||
* @description: 用于定义本服务内部使用的缓存key
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 12/13/21 11:12 AM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class SalaryCacheKey {
|
||||
|
||||
|
||||
/**
|
||||
* 核算进度
|
||||
*/
|
||||
public final static String ACCT_PROGRESS = "ACCT_PROGRESS_";
|
||||
|
||||
/**
|
||||
* 考勤进度
|
||||
*/
|
||||
public final static String ATTEND_PROGRESS = "ATTEND_PROGRESS_";
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.engine.salary.cache;
|
||||
|
||||
/**
|
||||
* @description: 用于拷贝定义所有的模块key,按照模块名规范表进行定义,便于开发引用。要求变量名和变量值必须完全保持一致
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 12/13/21 11:24 AM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class SalaryModuleKey {
|
||||
|
||||
/**
|
||||
* 薪酬管理模块表示标识
|
||||
*/
|
||||
public final static String HRM_SALARY_MODULE = "HRM_SALARY_MODULE";
|
||||
}
|
||||
|
|
@ -18,7 +18,7 @@ public interface SalaryAcctProgressService {
|
|||
* @param salaryAcctProgress
|
||||
* @return
|
||||
*/
|
||||
String initProgress(String cacheKey, SalaryAcctProgressDTO salaryAcctProgress);
|
||||
void initProgress(String cacheKey, SalaryAcctProgressDTO salaryAcctProgress);
|
||||
|
||||
/**
|
||||
* 更新进度条
|
||||
|
|
@ -54,8 +54,7 @@ public interface SalaryAcctProgressService {
|
|||
* 删除redis中的缓存
|
||||
*
|
||||
* @param cacheKey
|
||||
* @param employeeId
|
||||
* @return
|
||||
*/
|
||||
SalaryAcctProgressDTO del(String cacheKey, Long employeeId);
|
||||
SalaryAcctProgressDTO del(String cacheKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service.impl;
|
|||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.cache.SalaryCacheKey;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.constant.SalaryFormulaFieldConstant;
|
||||
import com.engine.salary.entity.datacollection.AddUpDeduction;
|
||||
|
|
@ -91,7 +92,9 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
return (SalaryAcctResultTempService) ServiceUtil.getService(SalaryAcctResultTempServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctProgressService salaryAcctProgressService;
|
||||
private SalaryAcctProgressService getSalaryAcctProgressService(User user) {
|
||||
return (SalaryAcctProgressService) ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) {
|
||||
return (SalaryAcctEmployeeService) ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user);
|
||||
|
|
@ -203,8 +206,8 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
// 保存新的薪资核算结果(临时存储)
|
||||
getSalaryAcctResultTempService(user).batchSave(salaryAcctResultTempPOS);
|
||||
// 更新薪资核算进度
|
||||
// salaryAcctProgressService.getAndAddCalculatedQty("" + salaryAcctCalculateBO.getSalaryAcctRecordPO().getId(),
|
||||
// salaryAcctCalculateBO.getSalaryAcctEmployeePOS().size());
|
||||
getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + salaryAcctCalculateBO.getSalaryAcctRecordPO().getId(),
|
||||
salaryAcctCalculateBO.getSalaryAcctEmployeePOS().size());
|
||||
// 记录子线程执行结果
|
||||
salaryAcctCalculateBO.getResults().add(new SalaryAcctCalculateBO.Result(true, StringUtils.EMPTY));
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,89 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.cloudstore.dev.api.util.Util_DataCache;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO;
|
||||
import com.engine.salary.service.SalaryAcctProgressService;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
/**
|
||||
* 核算进度条
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
public class SalaryAcctProgressServiceImpl extends Service implements SalaryAcctProgressService {
|
||||
|
||||
|
||||
@Override
|
||||
public void initProgress(String cacheKey, SalaryAcctProgressDTO salaryAcctProgress) {
|
||||
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryAcctProgress));
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void getAndAddCalculatedQty(String cacheKey, Integer calculatedQuantity) {
|
||||
String resultStr = (String) Util_DataCache.getObjVal(cacheKey);
|
||||
if (StringUtils.isNotEmpty(resultStr)) {
|
||||
SalaryAcctProgressDTO salaryAcctProgress = JsonUtil.parseObject(resultStr, SalaryAcctProgressDTO.class);
|
||||
if (salaryAcctProgress == null || !salaryAcctProgress.isStatus()) {
|
||||
return;
|
||||
}
|
||||
Integer currentCalculatedQuantity = salaryAcctProgress.getCalculatedQuantity() + calculatedQuantity;
|
||||
salaryAcctProgress.setCalculatedQuantity(
|
||||
currentCalculatedQuantity > salaryAcctProgress.getTotalQuantity() ? salaryAcctProgress.getTotalQuantity() : currentCalculatedQuantity);
|
||||
BigDecimal progress = BigDecimal.valueOf(salaryAcctProgress.getCalculatedQuantity())
|
||||
.divide(BigDecimal.valueOf(salaryAcctProgress.getTotalQuantity()), 4, RoundingMode.HALF_DOWN);
|
||||
salaryAcctProgress.setProgress(progress.compareTo(BigDecimal.ONE) > 0 ? BigDecimal.ONE : progress);
|
||||
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryAcctProgress));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fail(String cacheKey, String message) {
|
||||
SalaryAcctProgressDTO salaryAcctProgress = new SalaryAcctProgressDTO();
|
||||
salaryAcctProgress.setStatus(false);
|
||||
salaryAcctProgress.setMessage(message);
|
||||
salaryAcctProgress.setCheckStatus(true);
|
||||
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryAcctProgress));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(String cacheKey, boolean checkStatus) {
|
||||
String resultStr = (String) Util_DataCache.getObjVal(cacheKey);
|
||||
if (StringUtils.isNotEmpty(resultStr)) {
|
||||
SalaryAcctProgressDTO salaryAcctProgress = JsonUtil.parseObject(resultStr, SalaryAcctProgressDTO.class);
|
||||
if (salaryAcctProgress == null || !salaryAcctProgress.isStatus()) {
|
||||
return;
|
||||
}
|
||||
salaryAcctProgress.setTitle("核算完成");
|
||||
salaryAcctProgress.setCalculatedQuantity(salaryAcctProgress.getTotalQuantity());
|
||||
salaryAcctProgress.setProgress(BigDecimal.ONE);
|
||||
salaryAcctProgress.setCheckStatus(checkStatus);
|
||||
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryAcctProgress));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalaryAcctProgressDTO getProgress(String cacheKey) {
|
||||
String resultStr = (String) Util_DataCache.getObjVal(cacheKey);
|
||||
if (StringUtils.isEmpty(resultStr)) {
|
||||
return null;
|
||||
}
|
||||
return JsonUtil.parseObject(resultStr, SalaryAcctProgressDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalaryAcctProgressDTO del(String cacheKey) {
|
||||
Util_DataCache.clearVal(cacheKey);
|
||||
SalaryAcctProgressDTO salaryAcctProgressDTO = new SalaryAcctProgressDTO();
|
||||
salaryAcctProgressDTO.setMessage("核算失败");
|
||||
salaryAcctProgressDTO.setStatus(false);
|
||||
return salaryAcctProgressDTO;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.engine.salary.service.impl;
|
|||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.biz.TaxAgentBiz;
|
||||
import com.engine.salary.cache.SalaryCacheKey;
|
||||
import com.engine.salary.common.LocalDateRange;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
|
||||
|
|
@ -67,42 +68,55 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctResultService {
|
||||
|
||||
private SalaryAcctResultMapper getSalaryAcctResultMapper(){
|
||||
private SalaryAcctResultMapper getSalaryAcctResultMapper() {
|
||||
return MapperProxyFactory.getProxy(SalaryAcctResultMapper.class);
|
||||
}
|
||||
|
||||
private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) {
|
||||
return (SalaryAcctEmployeeService) ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobItemService getSalarySobItemService(User user) {
|
||||
return (SalarySobItemService) ServiceUtil.getService(SalarySobItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryItemService getSalaryItemService(User user) {
|
||||
return (SalaryItemService) ServiceUtil.getService(SalaryItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobEmpFieldService getSalarySobEmpFieldService(User user) {
|
||||
return (SalarySobEmpFieldService) ServiceUtil.getService(SalarySobEmpFieldServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobService getSalarySobService(User user) {
|
||||
return (SalarySobService) ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {
|
||||
return (SalaryAcctRecordService) ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private TaxAgentBiz taxAgentService = new TaxAgentBiz();
|
||||
|
||||
private SalaryEmployeeService getSalaryEmployeeService(User user) {
|
||||
return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryFormulaService getSalaryFormulaService(User user) {
|
||||
return (SalaryFormulaService) ServiceUtil.getService(SalaryFormulaServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobAdjustRuleService getSalarySobAdjustRuleService(User user) {
|
||||
return (SalarySobAdjustRuleService) ServiceUtil.getService(SalarySobAdjustRuleServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctCalculateService getSalaryAcctCalculateService(User user) {
|
||||
return (SalaryAcctCalculateService) ServiceUtil.getService(SalaryAcctCalculateServiceImpl.class, user);
|
||||
}
|
||||
// private SalaryAcctProgressService salaryAcctProgressService;
|
||||
|
||||
private SalaryAcctProgressService getSalaryAcctProgressService(User user) {
|
||||
return (SalaryAcctProgressService) ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private DataSourceTransactionManager dataSourceTransactionManager;
|
||||
|
||||
|
|
@ -118,6 +132,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
private AttendQuoteFieldService getAttendQuoteFieldService(User user) {
|
||||
return (AttendQuoteFieldService) ServiceUtil.getService(AttendQuoteFieldServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryCheckResultService salaryCheckResultService;
|
||||
|
||||
@Override
|
||||
|
|
@ -316,7 +331,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98831, "薪资核算人员不存在或已被删除"));
|
||||
}
|
||||
// 保存参数转换成薪资核算结果po
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(saveParam, salaryAcctEmployeePO, (long)user.getUID());
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(saveParam, salaryAcctEmployeePO, (long) user.getUID());
|
||||
// 删除原来的薪资核算结果
|
||||
deleteBySalaryAcctEmployeeIds(Collections.singleton(saveParam.getSalaryAcctEmpId()));
|
||||
// 保存薪资核算结果
|
||||
|
|
@ -417,7 +432,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
.setProgress(BigDecimal.ZERO)
|
||||
.setStatus(true)
|
||||
.setMessage(StringUtils.EMPTY);
|
||||
// salaryAcctProgressService.initProgress("" + calculateParam.getSalaryAcctRecordId(), initProgress, simpleEmployee.getEmployeeId());
|
||||
getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), initProgress);
|
||||
// 12、对薪资核算人员进行拆分
|
||||
List<List<SalaryAcctEmployeePO>> partition = Lists.partition(salaryAcctEmployeePOS, 100);
|
||||
// 12.1、监控子线程的任务执行
|
||||
|
|
@ -461,7 +476,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
.filter(result -> !result.isStatus())
|
||||
.map(SalaryAcctCalculateBO.Result::getErrMsg)
|
||||
.collect(Collectors.joining("|"));
|
||||
// salaryAcctProgressService.fail("" + calculateParam.getSalaryAcctRecordId(), errorMsg);
|
||||
getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), errorMsg);
|
||||
// 删除薪资核算临时存储表中的数据
|
||||
getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey);
|
||||
return;
|
||||
|
|
@ -473,6 +488,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// .setSalaryAcctRecordId(calculateParam.getSalaryAcctRecordId())
|
||||
// .setIds(calculateParam.getIds());
|
||||
// salaryCheckResultService.check(salaryAcctCheckParam, true, simpleEmployee);
|
||||
// Thread.sleep(10);
|
||||
getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true);
|
||||
// 记录日志
|
||||
// 查询操作日志的targetName
|
||||
// String targetName = getSalaryAcctRecordService(user).getLogTargetNameById(calculateParam.getSalaryAcctRecordId());
|
||||
|
|
@ -485,8 +502,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||
} catch (Exception e) {
|
||||
log.info("薪资核算出错:{}", e.getMessage(), e);
|
||||
throw new SalaryRunTimeException(e);
|
||||
// salaryAcctProgressService.fail("" + calculateParam.getSalaryAcctRecordId(), SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage());
|
||||
// throw new SalaryRunTimeException(e);
|
||||
getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage());
|
||||
} finally {
|
||||
// 数据库字段加密用
|
||||
}
|
||||
|
|
@ -501,19 +518,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
private void handleSalaryAcctResultTemp(SalaryAcctCalculateParam calculateParam, String calculateKey) {
|
||||
// TransactionStatus status = dataSourceTransactionManager.getTransaction(new DefaultTransactionDefinition());
|
||||
// try {
|
||||
// 查询薪资核算结果的临时存储
|
||||
List<SalaryAcctResultTempPO> salaryAcctResultTempPOS = getSalaryAcctResultTempService(user).listByCalculateKey(calculateKey);
|
||||
// 删除原来的薪资核算结果
|
||||
if (CollectionUtils.isNotEmpty(calculateParam.getIds())) {
|
||||
getSalaryAcctResultMapper().deleteBySalaryAcctEmpIds(calculateParam.getIds());
|
||||
} else {
|
||||
getSalaryAcctResultMapper().deleteBySalaryAcctRecordIds(Collections.singleton(calculateParam.getSalaryAcctRecordId()));
|
||||
}
|
||||
// 保存薪资的薪资核算结果
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2ResultPO(salaryAcctResultTempPOS);
|
||||
batchSave(salaryAcctResultPOS);
|
||||
// 删除薪资核算临时存储表中的数据
|
||||
getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey);
|
||||
// 查询薪资核算结果的临时存储
|
||||
List<SalaryAcctResultTempPO> salaryAcctResultTempPOS = getSalaryAcctResultTempService(user).listByCalculateKey(calculateKey);
|
||||
// 删除原来的薪资核算结果
|
||||
if (CollectionUtils.isNotEmpty(calculateParam.getIds())) {
|
||||
getSalaryAcctResultMapper().deleteBySalaryAcctEmpIds(calculateParam.getIds());
|
||||
} else {
|
||||
getSalaryAcctResultMapper().deleteBySalaryAcctRecordIds(Collections.singleton(calculateParam.getSalaryAcctRecordId()));
|
||||
}
|
||||
// 保存薪资的薪资核算结果
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2ResultPO(salaryAcctResultTempPOS);
|
||||
batchSave(salaryAcctResultPOS);
|
||||
// 删除薪资核算临时存储表中的数据
|
||||
getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey);
|
||||
// // 提交事务
|
||||
// dataSourceTransactionManager.commit(status);
|
||||
// } catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
package com.engine.salary.web;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO;
|
||||
import com.engine.salary.service.SalaryAcctProgressService;
|
||||
import com.engine.salary.service.impl.SalaryAcctProgressServiceImpl;
|
||||
import com.engine.salary.util.ResponseResult;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
/**
|
||||
* 进度条
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
public class SalaryProgressController {
|
||||
|
||||
private SalaryAcctProgressService getSalaryAcctProgressService(User user) {
|
||||
return (SalaryAcctProgressService) ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user);
|
||||
}
|
||||
|
||||
//获取进度条
|
||||
@GET
|
||||
@Path("/getRate")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "cacheKey") String cacheKey) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, SalaryAcctProgressDTO>(user).run(getSalaryAcctProgressService(user)::getProgress, cacheKey);
|
||||
}
|
||||
|
||||
// @ApiOperation("获取进度条")
|
||||
// @GetMapping("/getWelfareAccountRate")
|
||||
// @WeaPermission(publicPermission = true)
|
||||
// public WeaResult<SalaryAcctProgressDTO> getWelfareAccountRate(@RequestParam String billMonth) {
|
||||
// Long employeeId = UserContext.getCurrentEmployeeId();
|
||||
// String tenantKey = TenantContext.getCurrentTenantKey();
|
||||
// SalaryAcctProgressDTO salaryAcctProgressDTO = salaryAcctProgressService.getProgress(tenantKey + billMonth, employeeId, tenantKey);
|
||||
// return WeaResult.success(salaryAcctProgressDTO);
|
||||
// }
|
||||
}
|
||||
|
|
@ -3,8 +3,10 @@ package com.engine.salary.wrapper;
|
|||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.cache.SalaryCacheKey;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam;
|
||||
|
|
@ -16,12 +18,15 @@ import com.engine.salary.service.impl.*;
|
|||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import com.weaver.util.threadPool.ThreadPoolUtil;
|
||||
import com.weaver.util.threadPool.constant.ModulePoolEnum;
|
||||
import com.weaver.util.threadPool.entity.LocalRunnable;
|
||||
import org.apache.commons.lang.math.NumberUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 薪资核算结果
|
||||
|
|
@ -48,8 +53,10 @@ public class SalaryAcctResultWrapper extends Service {
|
|||
private SalaryAcctEmployeeWrapper getSalaryAcctEmployeeWrapper(User user) {
|
||||
return (SalaryAcctEmployeeWrapper) ServiceUtil.getService(SalaryAcctEmployeeWrapper.class, user);
|
||||
}
|
||||
|
||||
// private SalaryAcctProgressService salaryAcctProgressService;
|
||||
|
||||
private SalaryAcctProgressService getSalaryAcctProgressService(User user) {
|
||||
return (SalaryAcctProgressService) ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user);
|
||||
}
|
||||
|
||||
// private SalaryCheckResultService salaryCheckResultService;
|
||||
|
||||
|
|
@ -158,28 +165,28 @@ public class SalaryAcctResultWrapper extends Service {
|
|||
// 检查薪资核算人员的个税扣缴义务人
|
||||
getSalaryAcctEmployeeWrapper(user).checkTaxAgent(calculateParam.getSalaryAcctRecordId());
|
||||
// 检查是否正在核算中
|
||||
// SalaryAcctProgressDTO salaryAcctProgressDTO = salaryAcctProgressService.getProgress("" + calculateParam.getSalaryAcctRecordId(), simpleEmployee.getEmployeeId(), tenantKey);
|
||||
// if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) {
|
||||
// return;
|
||||
// }
|
||||
// // 初始化进度
|
||||
// SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO()
|
||||
// .setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中"))
|
||||
// .setTitleLabelId(97515L)
|
||||
// .setTotalQuantity(NumberUtils.INTEGER_ONE)
|
||||
// .setCalculatedQuantity(NumberUtils.INTEGER_ZERO)
|
||||
// .setProgress(BigDecimal.ZERO)
|
||||
// .setStatus(true)
|
||||
// .setMessage(StringUtils.EMPTY);
|
||||
// salaryAcctProgressService.initProgress("" + calculateParam.getSalaryAcctRecordId(), initProgress, simpleEmployee.getEmployeeId(), tenantKey);
|
||||
SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId());
|
||||
if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) {
|
||||
return;
|
||||
}
|
||||
// 初始化进度
|
||||
SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO()
|
||||
.setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中"))
|
||||
.setTitleLabelId(97515L)
|
||||
.setTotalQuantity(NumberUtils.INTEGER_ONE)
|
||||
.setCalculatedQuantity(NumberUtils.INTEGER_ZERO)
|
||||
.setProgress(BigDecimal.ZERO)
|
||||
.setStatus(true)
|
||||
.setMessage(StringUtils.EMPTY);
|
||||
getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), initProgress);
|
||||
// 异步执行薪资核算
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
getSalaryAcctResultService(user).calculate(calculateParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "salaryAcctCalculate", localRunnable);
|
||||
}
|
||||
};
|
||||
ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "salaryAcctCalculate", localRunnable);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue