From fc88f0390423717d1f41e7adceac3241b306ef0f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 16 Oct 2024 15:47:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E9=85=AC=E5=8A=A0?= =?UTF-8?q?=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VariableArchiveItemMapper.java | 2 + .../VariableArchiveItemMapper.xml | 16 +++++++ .../service/VariableArchiveItemService.java | 1 + .../impl/VariableArchiveItemServiceImpl.java | 5 +++ .../impl/VariableArchiveServiceImpl.java | 4 +- .../impl/SalarySysConfServiceImpl.java | 45 ++++++++++++++++--- 6 files changed, 63 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java index 3b2e89f34..28a30febe 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java @@ -84,4 +84,6 @@ public interface VariableArchiveItemMapper { void deleteByIds(@Param("collection")List part); void deleteByArchiveIds(@Param("collection")List part); + + void updateBatchSelective(@Param("list")List variableArchiveItemPOS); } diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml index 6c6c83c84..365c21579 100644 --- a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml @@ -312,6 +312,22 @@ WHERE id = #{id} AND delete_type = 0 + + update hrsa_variable_archive_item + + + + + when id = #{item.id} then #{item.itemValue} + + + + + where id in + + #{item.id} + + diff --git a/src/com/engine/salary/service/VariableArchiveItemService.java b/src/com/engine/salary/service/VariableArchiveItemService.java index fd9dcee4e..e5dd8644a 100644 --- a/src/com/engine/salary/service/VariableArchiveItemService.java +++ b/src/com/engine/salary/service/VariableArchiveItemService.java @@ -12,6 +12,7 @@ import java.util.List; */ public interface VariableArchiveItemService { + List listAll(); /** * 根据浮动薪资档案id获取 * diff --git a/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java index 7e5cacec5..b7aff7cae 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java @@ -25,6 +25,11 @@ public class VariableArchiveItemServiceImpl extends Service implements VariableA return MapperProxyFactory.getProxy(VariableArchiveItemMapper.class); } + @Override + public List listAll() { + return getVariableArchiveItemMapper().listAll(); + } + /** * 根据浮动薪资档案id获取 * diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 732d95e12..82b727009 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -206,9 +206,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List variableArchivePOList = getVariableArchiveMapper().listSome(VariableArchivePO.builder().salaryMonth(saveParam.getSalaryMonthDate()).taxAgentId(saveParam.getTaxAgentIds()).employeeId(saveParam.getEmployeeId()).build()); if (CollectionUtils.isNotEmpty(variableArchivePOList)) { - // 先删除原有档案 - List variableArchiveIds = variableArchivePOList.stream().map(VariableArchivePO::getId).collect(Collectors.toList()); - getVariableArchiveMapper().deleteByIds(variableArchiveIds); + throw new SalaryRunTimeException("已存在浮动薪酬数据"); } // 保存浮动薪资档案信息 diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index 64771e07d..b4aa8e526 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; +import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.salaryacct.po.ExcelAcctResultPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; @@ -24,10 +25,7 @@ import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; -import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; -import com.engine.salary.mapper.datacollection.AddUpSituationMapper; -import com.engine.salary.mapper.datacollection.OtherDeductionMapper; -import com.engine.salary.mapper.datacollection.SpecialAddDeductionMapper; +import com.engine.salary.mapper.datacollection.*; import com.engine.salary.mapper.salaryacct.ExcelAcctResultMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; import com.engine.salary.mapper.siaccount.ExcelInsuranceDetailMapper; @@ -39,6 +37,8 @@ import com.engine.salary.mapper.siarchives.SocialSchemeMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper; +import com.engine.salary.service.VariableArchiveItemService; +import com.engine.salary.service.impl.VariableArchiveItemServiceImpl; import com.engine.salary.sys.config.SysConfig; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.param.AppSettingSaveParam; @@ -157,6 +157,9 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private VariableArchiveItemService getVariableArchiveItemService(User user) { + return ServiceUtil.getService(VariableArchiveItemServiceImpl.class, user); + } /** * 操作是否需要申报功能 @@ -1234,14 +1237,42 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return 1; }); - int flag = submit.get() + submit1.get() + submit2.get() + submit3.get() + submit4.get() + submit5.get() + submit6.get() + submit7.get() + submit8.get() + submit9.get() + submit10.get() + submit11.get() + submit12.get() + submit13.get() + submit14.get(); - if (flag == 15) { + Future submit15 = fixedThreadPool.submit(() -> { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + List variableArchiveItemPOS = getVariableArchiveItemService(user).listAll(); + if (CollectionUtils.isNotEmpty(variableArchiveItemPOS)) { + variableArchiveItemPOS.forEach(po -> { + if (OpenEnum.OFF.getValue().equals(isOpenEncrypt)) { + po.setItemValue(AESEncryptUtil.closeEncryptSetting(po.getItemValue(), sysConfPo)); + } else { + po.setItemValue(AESEncryptUtil.encrypt(po.getItemValue())); + } + }); + List> partition = Lists.partition(variableArchiveItemPOS, 10); + VariableArchiveItemMapper mapper = sqlSession.getMapper(VariableArchiveItemMapper.class); + partition.forEach(mapper::updateBatchSelective); + sqlSession.commit(); + log.info("finish hrsa_variable_archive_item"); + } + } catch (Exception e) { + sqlSession.rollback(); + log.error("fail hrsa_variable_archive_item", e); + return 0; + } finally { + sqlSession.close(); + } + return 1; + }); + + int flag = submit.get() + submit1.get() + submit2.get() + submit3.get() + submit4.get() + submit5.get() + submit6.get() + submit7.get() + submit8.get() + submit9.get() + submit10.get() + submit11.get() + submit12.get() + submit13.get() + submit14.get() + submit15.get(); + if (flag == 16) { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "success", 30); } else { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "fail", 30); } Util_DataCache.clearVal(AES_ENCRYPT_IN_PROGRESS); - return flag == 15; + return flag == 16; } catch (Exception e) { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "fail", 30); Util_DataCache.clearVal(AES_ENCRYPT_IN_PROGRESS);