From f2fdbca8f7b696399f3616db4e0e75abaf4b09f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 7 Nov 2022 11:31:21 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=84=B1=E6=95=8F=E8=A1=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctReportServiceImpl.java | 19 ++++++++++++++++++- .../sys/constant/SalarySysConstant.java | 5 +++++ .../sys/entity/param/AppSettingSaveParam.java | 9 +++++++++ .../salary/sys/entity/vo/AppSettingVO.java | 7 +++++++ .../sys/service/SalarySysConfService.java | 5 +++++ .../impl/SalarySysConfServiceImpl.java | 13 ++++++++++++- 6 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java index 334221f35..e02c2aeac 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java @@ -1,19 +1,27 @@ package com.engine.salary.service.impl; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.report.SalaryAcctResultReportPOEncrypt; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.mapper.report.SalaryAcctResultReportMapper; import com.engine.salary.service.SalaryAcctReportService; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.enums.OpenEnum; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; +import weaver.hrm.User; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.DISPLAY_EMP_INFO_REPORT; + /** * 薪资报表 *

Copyright: Copyright (c) 2022

@@ -28,6 +36,11 @@ public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctRe return MapperProxyFactory.getProxy(SalaryAcctResultReportMapper.class); } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + /** * 薪酬解密方法 * @@ -61,7 +74,11 @@ public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctRe @Override public void batchSave(Collection pos) { if (CollectionUtils.isNotEmpty(pos)) { - SalaryAcctResultReportPOEncrypt.encryptList(pos); + SalarySysConfPO disPlay = getSalarySysConfService(user).getOneByCode(DISPLAY_EMP_INFO_REPORT); + //默认不显示,关闭状态 + if (disPlay == null || OpenEnum.OFF.getValue().equals(disPlay.getConfValue())) { + SalaryAcctResultReportPOEncrypt.encryptList(pos); + } // List> partition = Lists.partition((List) pos, 100); // partition.forEach(getSalaryAcctResultReportMapper()::batchInsert); diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 4800e1e61..30f352cbf 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -32,6 +32,11 @@ public class SalarySysConstant { */ public static final String OPEN_ACCT_RESULT_SUM = "OPEN_ACCT_RESULT_SUM"; + /** + * 是否显示脱敏表人员信息 + */ + public static final String DISPLAY_EMP_INFO_REPORT = "DISPLAY_EMP_INFO_REPORT"; + /** * 应用设置是否开启加密 */ diff --git a/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java b/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java index e235ad139..12c36115b 100644 --- a/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java +++ b/src/com/engine/salary/sys/entity/param/AppSettingSaveParam.java @@ -1,6 +1,7 @@ package com.engine.salary.sys.entity.param; import com.engine.salary.sys.enums.OpenEnum; +import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -32,6 +33,7 @@ public class AppSettingSaveParam { * * @see OpenEnum */ + @DataCheck(require = true,message = "是否开启核算结果合计列?") private String openAcctResultSum; /** @@ -39,4 +41,11 @@ public class AppSettingSaveParam { */ private String isOpenEncrypt; + /** + * 是否显示脱敏表人员信息 + * @see OpenEnum + */ + @DataCheck(require = true,message = "是否显示脱敏表人员信息?") + private String displayEmpInfoReport; + } diff --git a/src/com/engine/salary/sys/entity/vo/AppSettingVO.java b/src/com/engine/salary/sys/entity/vo/AppSettingVO.java index cfa2dbc77..d95b33af4 100644 --- a/src/com/engine/salary/sys/entity/vo/AppSettingVO.java +++ b/src/com/engine/salary/sys/entity/vo/AppSettingVO.java @@ -40,4 +40,11 @@ public class AppSettingVO { private String isOpenEncrypt; + + /** + * 是否显示脱敏表人员信息 + * @see OpenEnum + */ + private String displayEmpInfoReport; + } diff --git a/src/com/engine/salary/sys/service/SalarySysConfService.java b/src/com/engine/salary/sys/service/SalarySysConfService.java index de1fd16ae..30e97581d 100644 --- a/src/com/engine/salary/sys/service/SalarySysConfService.java +++ b/src/com/engine/salary/sys/service/SalarySysConfService.java @@ -67,5 +67,10 @@ public interface SalarySysConfService { */ Map saveEncryptSetting(AppSettingSaveParam appSettingSaveParam); + /** + * 加密进度 + * @param progressId + * @return + */ Map getEncryptProgress(String progressId); } diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index efd8e42c0..14b971945 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -298,6 +298,7 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe public void saveAppSetting(AppSettingSaveParam param) { String openAcctResultSum = param.getOpenAcctResultSum(); saveSettingByType(openAcctResultSum, OPEN_ACCT_RESULT_SUM, "开启核算结果合并", "app"); + saveSettingByType(param.getDisplayEmpInfoReport(), DISPLAY_EMP_INFO_REPORT, "是否显示脱敏表人员信息", "app"); } @Override @@ -410,6 +411,9 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe case OPEN_APPLICATION_ENCRYPT: appSettingVO.setIsOpenEncrypt(salarySysConfPO.getConfValue()); break; + case DISPLAY_EMP_INFO_REPORT: + appSettingVO.setDisplayEmpInfoReport(salarySysConfPO.getConfValue()); + break; default: break; } @@ -417,7 +421,14 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe } //默认加密开启 if (StringUtils.isEmpty(appSettingVO.getIsOpenEncrypt())) { - appSettingVO.setIsOpenEncrypt("1"); + appSettingVO.setIsOpenEncrypt(OpenEnum.OPEN.getValue()); + } + + /** + * 默认不显示 + */ + if (StringUtils.isEmpty(appSettingVO.getDisplayEmpInfoReport())) { + appSettingVO.setDisplayEmpInfoReport(OpenEnum.OFF.getValue()); } return appSettingVO; } From 21ccf6cbcb3f2b9b21d636c49b0a2486a3e99522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Nov 2022 11:10:56 +0800 Subject: [PATCH 2/4] =?UTF-8?q?sql=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FormulaRunServiceImpl.java | 19 ++++++++++++++++--- .../impl/SalaryAcctCalculateServiceImpl.java | 14 +++++++++++++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java index 3f7e13f67..79190007f 100644 --- a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java +++ b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java @@ -1,12 +1,14 @@ package com.engine.salary.service.impl; import com.engine.core.impl.Service; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.enums.salaryformula.ReferenceTypeEnum; import com.engine.salary.formlua.entity.parameter.DataType; import com.engine.salary.service.FormulaRunService; +import com.engine.salary.sys.enums.OpenEnum; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -56,6 +58,8 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService String extendParam = expressFormula.getExtendParam(); String sqlReturnKey = ""; String datasourceId = ""; + String openDecrypt = ""; + String result = ""; try { JsonNode jsonNode = objectMapper.readTree(extendParam); //返回值配置 @@ -71,6 +75,11 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService datasourceId = datasourceIdNode.asText(); } } + //是否需要解密 + JsonNode decrypt = jsonNode.get("openDecrypt"); + if (decrypt != null) { + openDecrypt = decrypt.asText().trim(); + } } catch (JsonProcessingException e) { log.error("express execute fail, sql extendParam parse fail", e); } @@ -89,18 +98,22 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService RecordSetDataSource rs = new RecordSetDataSource(datasourceId); if (rs.executeSql(sql)) { if (rs.next()) { - return rs.getString(sqlReturnKey); + result = rs.getString(sqlReturnKey); } } } else { RecordSet rs = new RecordSet(); if (rs.execute(sql)) { if (rs.next()) { - return rs.getString(sqlReturnKey); + result = rs.getString(sqlReturnKey); } } } - return StringUtils.EMPTY; + + if (OpenEnum.OPEN.getValue().equals(openDecrypt)) { + result = AESEncryptUtil.decrypt(openDecrypt); + } + return result; } private Object runFormula(ExpressFormula expressFormula, List formulaVars) throws Exception { diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index c272b65f9..c793713d9 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -198,7 +198,19 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc if (salaryItemIdKeySalarySobItemPOMap.containsKey(salaryItemId)) { // 转换成薪资核算结果po SalaryAcctResultTempPO salaryAcctResultTempPO = new SalaryAcctResultTempPO() - .setSalaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()).setSalaryAcctEmpId(salaryAcctEmployeePO.getId()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setSalarySobId(salaryAcctEmployeePO.getSalarySobId()).setSalaryItemId(salaryItemPO.getId()).setResultValue(resultValue).setCalculateKey(salaryAcctCalculateBO.getCalculateKey()).setCreator((long) user.getUID()).setCreateTime(now).setUpdateTime(now).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setDeleteType(0); + .setSalaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()) + .setSalaryAcctEmpId(salaryAcctEmployeePO.getId()) + .setEmployeeId(salaryAcctEmployeePO.getEmployeeId()) + .setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()) + .setSalarySobId(salaryAcctEmployeePO.getSalarySobId()) + .setSalaryItemId(salaryItemPO.getId()) + .setResultValue(resultValue) + .setCalculateKey(salaryAcctCalculateBO.getCalculateKey()) + .setCreator((long) user.getUID()) + .setCreateTime(now) + .setUpdateTime(now) + .setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .setDeleteType(0); salaryAcctResultTempPOS.add(salaryAcctResultTempPO); } } From e63c72f51e0e7da5be9d3671eac1b7dd1e9426d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Nov 2022 15:47:09 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=80=86=E5=90=91=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java index b3a6fbc61..0dd40eee4 100644 --- a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java @@ -17,7 +17,6 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.lang3.StringUtils; -import tebie.applib.api.O; import weaver.general.BaseBean; import weaver.hrm.User; @@ -134,7 +133,6 @@ public class SalarySystemConfigWrapper extends Service { } public Map saveEncryptSetting(AppSettingSaveParam param) { - ValidUtil.doValidator(param); return getSalarySysConfService(user).saveEncryptSetting(param); } From b55c339bb0bd8b458074a652cac15d2619b56175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Nov 2022 17:26:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8A=E6=9C=88?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/FormulaRunServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java index 79190007f..6beac534d 100644 --- a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java +++ b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java @@ -111,7 +111,7 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService } if (OpenEnum.OPEN.getValue().equals(openDecrypt)) { - result = AESEncryptUtil.decrypt(openDecrypt); + result = AESEncryptUtil.decrypt(result); } return result; }