From 237f42f2ae9b0b877c9615e1e4f4986f06e68c95 Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 15 Dec 2022 18:03:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-=E7=A6=8F?= =?UTF-8?q?=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E6=A0=B8=E7=AE=97=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E6=9D=A1=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 6 ++++++ .../service/SalaryAcctProgressService.java | 9 +++++++++ .../impl/SalaryAcctProgressServiceImpl.java | 16 ++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 968be1852..0fa1e7f59 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -400,6 +400,12 @@ public class SIAccountBiz extends Service { if (count % 50 == 0 || count >= ids.size()) { //salaryAcctProgressService.getAndAddCalculatedQty(tenantKey + billMonth, count >= ids.size() ? count % 50 : 50); getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth, count >= ids.size() ? count % 50 : 50); + if (count == ids.size()) { + getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth, BigDecimal.valueOf(0.99), false); + } else { + getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth, BigDecimal.valueOf(count/ids.size()).setScale(2, BigDecimal.ROUND_HALF_UP), false); + } + } } //临时表入库前先对(可能存在的)历史数据进行删除 diff --git a/src/com/engine/salary/service/SalaryAcctProgressService.java b/src/com/engine/salary/service/SalaryAcctProgressService.java index 6d9552ffb..df8833b3c 100644 --- a/src/com/engine/salary/service/SalaryAcctProgressService.java +++ b/src/com/engine/salary/service/SalaryAcctProgressService.java @@ -2,6 +2,8 @@ package com.engine.salary.service; import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO; +import java.math.BigDecimal; + /** * 核算进度 *

Copyright: Copyright (c) 2022

@@ -44,6 +46,13 @@ public interface SalaryAcctProgressService { */ void finish(String cacheKey, boolean checkStatus); + /** + * 更新进度条 + * + * @param cacheKey + */ + void updateProgress(String cacheKey, BigDecimal progress, boolean checkStatus); + /** * 获取进度条 * @return diff --git a/src/com/engine/salary/service/impl/SalaryAcctProgressServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctProgressServiceImpl.java index ca3e9904e..c3d22e069 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctProgressServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctProgressServiceImpl.java @@ -69,6 +69,22 @@ public class SalaryAcctProgressServiceImpl extends Service implements SalaryAcct } } + @Override + public void updateProgress(String cacheKey, BigDecimal progress, 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(progress); + salaryAcctProgress.setCheckStatus(checkStatus); + Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryAcctProgress)); + } + } + @Override public SalaryAcctProgressDTO getProgress(String cacheKey) { String resultStr = (String) Util_DataCache.getObjVal(cacheKey);