From e4f0746650b8eb05687a289962bfdefc69eae00d Mon Sep 17 00:00:00 2001 From: sy Date: Mon, 14 Aug 2023 11:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=EF=BC=8C=E6=8B=89=E5=8F=960801=E5=88=86?= =?UTF-8?q?=E6=94=AF=E6=94=B9=E5=8A=A8=EF=BC=8C=E9=80=82=E9=85=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=B8=AD=E6=96=87=E8=A1=A8=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/国际化sql/20230814111140.zip | Bin 0 -> 56373 bytes src/com/engine/salary/biz/SIArchivesBiz.java | 18 ++-- .../dto/SalaryFormulaEmployeeDTO.java | 2 +- .../service/impl/ExtEmpServiceImpl.java | 81 +++++++++--------- .../service/impl/SIAccountServiceImpl.java | 4 +- .../service/impl/SIArchivesServiceImpl.java | 12 +-- .../service/impl/SICategoryServiceImpl.java | 16 ++-- .../service/impl/SIImportServiceImpl.java | 2 +- .../impl/SalaryArchiveExcelServiceImpl.java | 6 +- .../impl/SalaryArchiveServiceImpl.java | 8 +- .../impl/SalaryBillItemNameServiceImpl.java | 5 +- .../service/impl/SalaryBillServiceImpl.java | 2 +- .../impl/SalaryFormulaServiceImpl.java | 4 +- .../impl/SalarySobItemServiceImpl.java | 8 +- .../impl/TaxAgentManageRangeServiceImpl.java | 6 +- .../service/impl/TaxAgentServiceImpl.java | 4 +- .../engine/salary/web/ExtEmpController.java | 2 +- .../engine/salary/web/SISchemeController.java | 2 +- .../salary/wrapper/SalarySendWrapper.java | 4 +- 19 files changed, 94 insertions(+), 92 deletions(-) create mode 100644 resource/国际化sql/20230814111140.zip diff --git a/resource/国际化sql/20230814111140.zip b/resource/国际化sql/20230814111140.zip new file mode 100644 index 0000000000000000000000000000000000000000..72776d9bdda693b9e3b6565d77ecd5edfd5c94b0 GIT binary patch literal 56373 zcmeFaRajg>v#5;(2?Tcy7Tn#PK=9!1?(Xgo+$MPN;O=gNySux)!

;{m=7XoPBdH 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 extEmpPOS = getExternalEmployeeMapper().listSome(ExtEmpPO.builder().username(param.getUsername()).build()); if (CollectionUtils.isNotEmpty(extEmpPOS)) { - throw new SalaryRunTimeException("姓名已存在!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544753,"姓名已存在!")); } ExtEmpPO po = new ExtEmpPO(); @@ -110,7 +110,7 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { if (!StringUtils.equals(oldPO.getUsername(), param.getUsername())) { List extEmpPOS = getExternalEmployeeMapper().listSome(ExtEmpPO.builder().username(param.getUsername()).build()); if (CollectionUtils.isNotEmpty(extEmpPOS)) { - throw new SalaryRunTimeException("姓名已存在!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544753,"姓名已存在!")); } } @@ -231,15 +231,15 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { // 模板表头 List headerList = Lists.newArrayList( - SalaryI18nUtil.getI18nLabel(25034, "姓名"), - SalaryI18nUtil.getI18nLabel(27511, "部门"), - SalaryI18nUtil.getI18nLabel(33553, "分部"), - SalaryI18nUtil.getI18nLabel(1516, "入职日期"), - SalaryI18nUtil.getI18nLabel(125238, "手机号"), - SalaryI18nUtil.getI18nLabel(1933, "工号"), - SalaryI18nUtil.getI18nLabel(1887, "身份证号码"), - SalaryI18nUtil.getI18nLabel(0, "本人开户的银行卡卡号"), - SalaryI18nUtil.getI18nLabel(0, "本人开户的银行卡开户支行全称")); + SalaryI18nUtil.getI18nLabel(user.getLanguage(),25034, "姓名"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),27511, "部门"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),33553, "分部"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),1516, "入职日期"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),125238, "手机号"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),1933, "工号"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),1887, "身份证号码"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544309, "本人开户的银行卡卡号"), + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544310, "本人开户的银行卡开户支行全称")); List dataIndexList = Lists.newArrayList("username", "departmentName", "subcompanyName", "companystartdate", "mobile", "workcode", "idNo", "bankCardNum", "bankName"); // excel导出的数据 @@ -248,8 +248,8 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { // 注释 List excelComments = Lists.newArrayList(); - excelComments.add(new ExcelComment(0, 0, 1, 2, SalaryI18nUtil.getI18nLabel(30036, "必填"))); - excelComments.add(new ExcelComment(3, 0, 4, 2, SalaryI18nUtil.getI18nLabel(542348, "格式样例为'2022-01-01'、'2022/1/1'"))); + excelComments.add(new ExcelComment(0, 0, 1, 2, SalaryI18nUtil.getI18nLabel(user.getLanguage(),30036, "必填"))); + excelComments.add(new ExcelComment(3, 0, 4, 2, SalaryI18nUtil.getI18nLabel(user.getLanguage(),542348, "格式样例为'2022-01-01'、'2022/1/1'"))); String sheetName = "非系统人员导入模板"; return ExcelUtilPlus.genWorkbookV2(rows, sheetName, excelComments); @@ -282,7 +282,7 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { //excel文件id String imageId = Util.null2String(param.getImageId()); - Validate.notBlank(imageId, SalaryI18nUtil.getI18nLabel(542127, "imageId为空")); + Validate.notBlank(imageId, SalaryI18nUtil.getI18nLabel(user.getLanguage(),542127, "imageId为空")); // 失败的数量 int failCount = 0; @@ -305,10 +305,10 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { // 处理数值 List> data = ExcelParseHelper.parse2Map(sheet, 1); if (CollectionUtils.isEmpty(headers)) { - throw new SalaryRunTimeException("表头为空"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542317,"表头为空")); } if (CollectionUtils.isEmpty(data)) { - throw new SalaryRunTimeException("无数据"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),508873,"无数据")); } //存储待新增和待更新的ExtEmpPO数据 List updateExtEmpPOList = new ArrayList<>(); @@ -316,23 +316,24 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { //遍历excel表具体数据 for (int i = 0; i < data.size(); i++) { - String row = "第" + (i + 1) + "行"; +// String row = "第" + (i + 1) + "行"; + String row = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542129,"错误行") + (i + 1) + ":"; boolean isError = false; Map map = data.get(i); Long employeeId = 0L; - String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(25034, "姓名"), ""); - String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(27511, "部门"), ""); - String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(33553, "分部"), ""); - String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1516, "入职日期"), ""); + String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),25034, "姓名"), ""); + String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),27511, "部门"), ""); + String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),33553, "分部"), ""); + String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),1516, "入职日期"), ""); //校验姓名 if (StringUtils.isBlank(username)) { //姓名是必填项 isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),542130, "姓名不能为空")); excelComments.add(errorMessageMap); } long usernameNum = updateExtEmpPOList.stream().filter(f -> f.getUsername().equals(username)).count() + insertExtEmpPOList.stream().filter(f -> f.getUsername().equals(username)).count(); @@ -340,7 +341,7 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { //excel中姓名相同时,只会录入第一次出现的数据 isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(102838, "本次excel文件中已存在该姓名相关数据,本行数据无法录入")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544758, "本次excel文件中已存在该姓名相关数据,本行数据无法录入")); excelComments.add(errorMessageMap); } //校验部门、分部 @@ -351,7 +352,7 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { if (subCompanyInfos.size() == 0) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "分部信息不存在,请检查分部数据是否正确")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544748, "分部信息不存在,请检查分部数据是否正确")); excelComments.add(errorMessageMap); } } @@ -360,14 +361,14 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { if (deptInfos.size() == 0) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "部门信息不存在,请检查部门数据是否正确")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544749, "部门信息不存在,请检查部门数据是否正确")); excelComments.add(errorMessageMap); } } if (StringUtils.isNotBlank(companystartdate) && (companystartdate.length() < 10 || !SalaryDateUtil.checkDay(companystartdate.substring(0, 10)))) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "入职日期格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544312, "入职日期格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); excelComments.add(errorMessageMap); } @@ -392,13 +393,13 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { if(subCompanyInfos.size() == 0 && deptInfos.size() > 1) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "系统中存在重复部门信息,无法指定当前人员关联的唯一部门,请通过填写部门所属的分部信息来缩小部门筛选范围")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544313, "系统中存在重复部门信息,无法指定当前人员关联的唯一部门,请通过填写部门所属的分部信息来缩小部门筛选范围")); excelComments.add(errorMessageMap); } else if (subCompanyInfos.size() > 1 && deptInfos.size() == 0) { //部门结果数为0,分部结果数大于1,则无法匹配 isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "系统中存在重复分部信息,无法指定当前人员关联的唯一分部,请通过填写人员所属的部门信息来缩小分部筛选范围")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544314, "系统中存在重复分部信息,无法指定当前人员关联的唯一分部,请通过填写人员所属的部门信息来缩小分部筛选范围")); excelComments.add(errorMessageMap); } else if (subCompanyInfos.size() >= 1 && deptInfos.size() >= 1) { //部门结果数大于等于1,分部结果数大于等于1,筛选出可配对的组合,根据部门的所属分部字段进行配对 @@ -410,12 +411,12 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { if (targetDeptInfos.size() == 0) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "部门与分部无法匹配")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544315, "部门与分部无法匹配")); excelComments.add(errorMessageMap); } else if (targetDeptInfos.size() > 1) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "该组数据中的部门和分部信息在系统中出现多组匹配的部门和分布组合,无法指定唯一的部门和分部组合")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544316, "该组数据中的部门和分部信息在系统中出现多组匹配的部门和分布组合,无法指定唯一的部门和分部组合")); excelComments.add(errorMessageMap); } else { targetSubCompanyInfos = subCompanyInfos.stream().filter(f -> f.getId().equals(targetDeptInfos.get(0).getSubcompanyid1())).collect(Collectors.toList()); @@ -439,7 +440,7 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { } else if (targetExtEmpInfoList.size() > 1) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "数据库中非系统人员信息存在姓名相同数据,请先确保姓名唯一")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544317, "数据库中非系统人员信息存在姓名相同数据,请先确保姓名唯一")); excelComments.add(errorMessageMap); } else { if (!isError) { @@ -493,15 +494,15 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { BeanUtils.copyProperties(po, resultPo); resultPo.setUpdateTime(new Date()); } - String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(25034, "姓名"), ""); -// String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(27511, "部门"), ""); -// String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(33553, "分部"), ""); - String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1516, "入职日期"), ""); - String mobile = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(125238, "手机号"), ""); - String workcode = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1933, "工号"), ""); - String idNo = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1887, "身份证号码"), ""); - String bankCardNum = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(0, "本人开户的银行卡卡号"), ""); - String bankName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(0, "本人开户的银行卡开户支行全称"), ""); + String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),25034, "姓名"), ""); +// String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),27511, "部门"), ""); +// String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),33553, "分部"), ""); + String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),1516, "入职日期"), ""); + String mobile = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),125238, "手机号"), ""); + String workcode = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),1933, "工号"), ""); + String idNo = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),1887, "身份证号码"), ""); + String bankCardNum = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544309, "本人开户的银行卡卡号"), ""); + String bankName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544310, "本人开户的银行卡开户支行全称"), ""); if (StringUtils.isNotBlank(companystartdate)) { resultPo.setCompanystartdate(companystartdate.substring(0, 10)); diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index f6c8fd0d1..80858c6bd 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -1551,10 +1551,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),542452, "账单月份输入有误,请参照“2022-09”这种格式进行检查")); excelComments.add(errorMessageMap); } - if (headers.contains(SalaryI18nUtil.getI18nLabel(0, "补缴月份")) && (supplementaryMonth.length() < 7 || !SalaryDateUtil.checkYearMonth(supplementaryMonth.substring(0, 7)))) { + if (headers.contains(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542265, "补缴月份")) && (supplementaryMonth.length() < 7 || !SalaryDateUtil.checkYearMonth(supplementaryMonth.substring(0, 7)))) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "补缴月份输入有误,请参照“2022-09”这种格式进行检查")); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544643, "补缴月份输入有误,请参照“2022-09”这种格式进行检查")); excelComments.add(errorMessageMap); } diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 6d6052123..6b967df0c 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -367,7 +367,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService Util_DataCache.setObjVal("welfareChangeSign", "0"); } catch (Exception e) { log.info("福利档案-增量数据处理出错:{}", e.getMessage(), e); - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "福利档案-增量数据处理出错")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544406, "福利档案-增量数据处理出错")); } } @@ -378,11 +378,11 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Override public void deleteArchive(Collection archiveIds) { if(CollectionUtils.isEmpty(archiveIds)){ - throw new SalaryRunTimeException("社保福利档案参数为空!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544754,"社保福利档案参数为空!")); } SalarySysConfPO canDelete = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_ARCHIVE_DELETE); if(Objects.isNull(canDelete) || StringUtils.equals(canDelete.getConfValue(),"0") ){ - throw new SalaryRunTimeException("不允许删除社保福利档案,请先开启删除档案规则配置!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544755,"不允许删除社保福利档案,请先开启删除档案规则配置!")); } List insuranceArchivesList = getInsuranceBaseInfoMapper().listByIds(archiveIds); @@ -392,13 +392,13 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService boolean err = insuranceArchivesList.stream().anyMatch(po -> !canDeleteTaxAgentIds.contains(po.getPaymentOrganization())); if (CollectionUtils.isEmpty(insuranceArchivesList) || err) { - throw new SalaryRunTimeException("社保档案不存在,或没有权限删除该社保案!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544756,"社保档案不存在,或没有权限删除该社保案!")); } Optional fixedList = insuranceArchivesList.stream().filter(archive -> !StringUtils.equals(archive.getRunStatus(), EmployeeStatusEnum.STAY_ADD.getValue()) && !StringUtils.equals(archive.getRunStatus(), EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())).findFirst(); if(fixedList.isPresent()){ - throw new SalaryRunTimeException("在缴员工、待减员、停止缴纳-来自待减员,无法删除薪资档案!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544757,"在缴员工、待减员、停止缴纳-来自待减员,无法删除薪资档案!")); } List archiveDelIds = insuranceArchivesList.stream().map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList()); List socialArchiveDelIds = insuranceArchivesList.stream().map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); @@ -540,7 +540,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return baseInfoPOList; } catch (Exception e) { log.info("新增福利档案出错:{}", e.getMessage(), e); - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "福利档案新增失败")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544750, "福利档案新增失败")); } } /** diff --git a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java index 89c03005e..c35046335 100644 --- a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java +++ b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java @@ -171,18 +171,18 @@ public class SICategoryServiceImpl extends Service implements SICategoryService public Map updateCategoryNameAndPayScope(ICategoryFormDTO iCategoryFormDTO) { ICategoryPO categoryPO = getICategoryMapper().getByIdAndDataType(iCategoryFormDTO.getId(), DataTypeEnum.CUSTOM.getValue()); if(categoryPO == null){ - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "自定义福利不存在")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542479, "自定义福利不存在")); } // 判断是否启用 Integer isUse = categoryPO.getIsUse(); if(isUse == 1){ - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "编辑失败,请先关闭启用按钮!")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542480, "编辑失败,请先关闭启用按钮!")); } // 判断福利名称是否重复 List iCategoryPOS = getICategoryMapper().listByName(iCategoryFormDTO.getInsuranceName()); iCategoryPOS = iCategoryPOS.stream().filter(f -> !f.getId().equals(iCategoryFormDTO.getId())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(iCategoryPOS)){ - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "福利名称不能重复")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542481, "福利名称不能重复")); } ICategoryPO iCategoryPO = ICategoryPO.builder().id(iCategoryFormDTO.getId()).insuranceName(iCategoryFormDTO.getInsuranceName()) .paymentScope(SalaryEnumUtil.enumArrToString(iCategoryFormDTO.getPaymentScope())) @@ -196,17 +196,17 @@ public class SICategoryServiceImpl extends Service implements SICategoryService public Map deleteCustomCategory(ICategoryFormDTO iCategoryFormDTO) { ICategoryPO categoryPO = getICategoryMapper().getByIdAndDataType(iCategoryFormDTO.getId(), DataTypeEnum.CUSTOM.getValue()); if(categoryPO == null){ - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "自定义福利不存在")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542479, "自定义福利不存在")); } // 判断是否启用 Integer isUse = categoryPO.getIsUse(); if(isUse == 1){ - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "删除失败,请先关闭启用按钮!")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544308, "删除失败,请先关闭启用按钮!")); } // 判断自定义福利项是否存在核算数据 //获取所有福利核算数据 List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().listAll(); - encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class, user); //数据组装 List> records = getRecordsBuildService(user).buildCommonRecords(insuranceAccountDetailPOS, null); String welfareTypeName = ""; @@ -221,7 +221,7 @@ public class SICategoryServiceImpl extends Service implements SICategoryService welfareTypeName = "other"; break; default: - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542456, "福利类型不在")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542456, "福利类型不存在")); } String welfareNameStart = categoryPO.getId() + welfareTypeName; //校验福利项是否存在核算记录 @@ -229,7 +229,7 @@ public class SICategoryServiceImpl extends Service implements SICategoryService if (!Objects.isNull(f.get(welfareNameStart + "Per")) || !Objects.isNull(f.get(welfareNameStart + "Com")) || !Objects.isNull(f.get(welfareNameStart + "Base"))) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "删除失败,已存在福利核算记录")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544307, "删除失败,已存在福利核算记录")); } }); diff --git a/src/com/engine/salary/service/impl/SIImportServiceImpl.java b/src/com/engine/salary/service/impl/SIImportServiceImpl.java index 111781911..4938df025 100644 --- a/src/com/engine/salary/service/impl/SIImportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIImportServiceImpl.java @@ -78,7 +78,7 @@ public class SIImportServiceImpl extends Service implements SIImportService { String sheetName; //表头 if (param.isExtWelArchiveList()) { - sheetName = SalaryI18nUtil.getI18nLabel(542679, "非系统人员"); + sheetName = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542679, "非系统人员"); } else if (param.getRunStatuses().size() > 0) { if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { sheetName = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542711, "待增员"); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index f061a0899..f7e12a996 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -264,7 +264,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 调薪 } else if (isSalaryItemAdjust) { nameI18n += "-" + SalaryI18nUtil - .getI18nLabel(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getLabelId(), SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getDefaultLabel()); + .getI18nLabel(user.getLanguage(),SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getLabelId(), SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getDefaultLabel()); } } String finalNameI18n = nameI18n; @@ -390,7 +390,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // SalaryI18nUtil.getI18nLabel(user.getLanguage(),e.getLabelId(), e.getDefaultLabel()) // ).collect(Collectors.toList()); // SalaryArchiveExcelBO -// .createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(user.getLanguage(),121922, "必填,可填写如:") + Joiner.on(",").join(incomeCategoryOptions), 0, 0, 2, 2); +// .createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(user.getLanguage(),544747, "必填,可填写如:") + Joiner.on(",").join(incomeCategoryOptions), 0, 0, 2, 2); // SalaryArchiveExcelBO.createExcelComment(excelComments, requireI18n + ',' + SalaryI18nUtil.getI18nLabel(user.getLanguage(),127641, "多个账套之间用,分隔"), 0, 0, 3, 3); // int i = enableHr ? 10 : 9; if (isPendingList) { @@ -402,7 +402,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch excelComments.add(new ExcelComment(7, 0, 9, 2, SalaryI18nUtil.getI18nLabel(user.getLanguage(),542348, "格式样例为'2022-01-01'、'2022/1/1'"))); excelComments.add(new ExcelComment(8, 0, 10, 2, SalaryI18nUtil.getI18nLabel(user.getLanguage(),542349, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); } else if (isSalaryItemAdjust) { - excelComments.add(new ExcelComment(6, 0, 8, 3, SalaryI18nUtil.getI18nLabel(user.getLanguage(),0, "必填,可填写如:") + excelComments.add(new ExcelComment(6, 0, 8, 3, SalaryI18nUtil.getI18nLabel(user.getLanguage(),544747, "必填,可填写如:") + SalaryI18nUtil.getI18nLabel(user.getLanguage(),16250, "入职") + "、" + SalaryI18nUtil.getI18nLabel(user.getLanguage(),6088, "转正") + "、" + SalaryI18nUtil.getI18nLabel(user.getLanguage(),542686, "调薪") + "、" diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index ace8d2b36..5b741f5bf 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -319,11 +319,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public void deleteSalaryArchive(Collection salaryArchiveIds) { if(CollectionUtils.isEmpty(salaryArchiveIds)){ - throw new SalaryRunTimeException("薪资档案参数为空!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544759,"薪资档案参数为空!")); } SalarySysConfPO canDelete = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_ARCHIVE_DELETE); if(Objects.isNull(canDelete) || StringUtils.equals(canDelete.getConfValue(),"0") ){ - throw new SalaryRunTimeException("不允许删除薪资档案,请先开启删除档案规则配置!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544760,"不允许删除薪资档案,请先开启删除档案规则配置!")); } List salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().ids(salaryArchiveIds).build()); @@ -332,12 +332,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe .stream().map(TaxAgentPO::getId).collect(Collectors.toList()); boolean err = salaryArchiveList.stream().anyMatch(po -> !canDeleteTaxAgentIds.contains(po.getTaxAgentId())); if(CollectionUtils.isEmpty(salaryArchiveList) || err){ - throw new SalaryRunTimeException("薪资档案不存在,或没有权限删除该薪资档案!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544761,"薪资档案不存在,或没有权限删除该薪资档案!")); } Optional fixedList = salaryArchiveList.stream().filter(archive -> !StringUtils.equals(archive.getRunStatus(), SalaryArchiveStatusEnum.PENDING.getValue()) && !StringUtils.equals(archive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())).findFirst(); if(fixedList.isPresent()){ - throw new SalaryRunTimeException("发薪员工、待停薪员工、停薪_来自待停薪,无法删除薪资档案!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544762,"发薪员工、待停薪员工、停薪_来自待停薪,无法删除薪资档案!")); } List deleteIds = salaryArchiveList.stream().map(SalaryArchivePO::getId).collect(Collectors.toList()); // 删除薪资档案及档案项目 diff --git a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java index 427f28ada..dad26bc8b 100644 --- a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.salary.service.SalaryBillItemNameService; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.SalaryTemplateService; import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; @@ -84,12 +85,12 @@ public class SalaryBillItemNameServiceImpl extends Service implements SalaryBill return; List templateIdList = saveList.stream().map(SalaryBillItemNameSaveParam::getSalaryTemplateId).distinct().collect(Collectors.toList()); if(CollectionUtils.isEmpty(templateIdList) || templateIdList.size()>1){ - throw new SalaryRunTimeException("工资单模板id为空,或存在多个工资单模板id"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544763,"工资单模板id为空,或存在多个工资单模板id")); } Long salaryTemplateId = templateIdList.get(0); SalaryTemplatePO salaryTemplatePO = getSalaryTemplateService(user).getById(salaryTemplateId); if(Objects.isNull(salaryTemplatePO)){ - throw new SalaryRunTimeException("工资单模板不存在或已被删除"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),0,"工资单模板不存在或已被删除")); } List needInsertList = new ArrayList<>(); List needUpdateList = new ArrayList<>(); diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 5c6d606e0..b53517a38 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -992,7 +992,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739466138709688320").salaryItemValue("3.00").name(SalaryI18nUtil.getI18nLabel(184539, "绩效分值")).sortedIndex(3).build()); // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739505579468095489").salaryItemValue("600.00").name(SalaryI18nUtil.getI18nLabel(184540, "工时奖金")).sortedIndex(4).build()); // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739505652314767360").salaryItemValue("500.00").name(SalaryI18nUtil.getI18nLabel(184544, "成果奖金")).sortedIndex(5).build()); -// items.add(SalaryTemplateSalaryItemListDTO.builder().id("739506094797062145").salaryItemValue("200.00").name(SalaryI18nUtil.getI18nLabel(184545, "考勤扣款")).sortedIndex(6).build()); +// items.add(SalaryTemplateSalaryItemListDTO.builder().id("739506094797062145").salaryItemValue("200.00").name(SalaryI18nUtil.getI18nLabel(33900, "考勤扣款")).sortedIndex(6).build()); // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739506691648290816").salaryItemValue("800.00").name(SalaryI18nUtil.getI18nLabel(184546, "餐补")).sortedIndex(7).build()); // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739516333975699456").salaryItemValue("1").name(SalaryI18nUtil.getI18nLabel(184547, "当月缺勤")).sortedIndex(8).build()); // items.add(SalaryTemplateSalaryItemListDTO.builder().id("739516913670455296").salaryItemValue("200.00").name(SalaryI18nUtil.getI18nLabel(184549, "缺勤扣款")).sortedIndex(9).build()); diff --git a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java index 39e6d265b..d6748b0ca 100644 --- a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java @@ -334,10 +334,10 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe // if (run.isStatus()) { // //返回结果不是数字 // if (returnTypeEnum == ReturnTypeEnum.NUMBER && !NumberUtils.isCreatable(String.valueOf(run))) { -// throw new SalaryRunTimeException("返回结果不是数值"); +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542390, "返回结果不是数值")); // } // }else { -// throw new SalaryRunTimeException("公式配置异常"); +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544764,"公式配置异常")); // } // } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index ac04c626f..9c0eaf60f 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -647,7 +647,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe private SalaryItemPO checkItemExists(Long salaryItemId, Map salaryItemsMap) { SalaryItemPO salaryItemPO = salaryItemsMap.get(salaryItemId); if (ObjectUtils.isEmpty(salaryItemPO)){ - throw new SalaryRunTimeException("保存失败!存在薪资项目不存在或已被删除"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544765,"保存失败!存在薪资项目不存在或已被删除")); } return salaryItemPO; } @@ -736,17 +736,17 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe // 查询薪资账套 SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId()); if (Objects.isNull(salarySobPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542420, "参数错误,薪资账套不存在或者已被删除")); } // 查询薪资项目 List salarySobItemPOS = getSalarySobItemMapper().listSome(SalarySobItemPO.builder().salarySobId(param.getSalarySobId()).salaryItemId(param.getSalaryItemId()).build()); if (CollectionUtils.isEmpty(salarySobItemPOS)){ - throw new SalaryRunTimeException("账套中薪资项目不存在"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544766,"账套中薪资项目不存在")); } SalarySobItemPO salarySobItemPO = salarySobItemPOS.get(0); SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(salarySobItemPO.getSalaryItemId()); if (ObjectUtils.isEmpty(salaryItemPO)){ - throw new SalaryRunTimeException("薪资项目不存在或已被删除"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544767,"薪资项目不存在或已被删除")); } //获取系统值 List salarySobDefaultItemPOS = getSalarySobDefaultItemMapper().listAll(); diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index 91af48fd4..45bc3ae6c 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -396,11 +396,11 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM public void saveExtRange(TaxAgentManageRangeExtSaveParam saveParam) { if (saveParam == null) { - throw new SalaryRunTimeException("参数错误"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),389204,"参数错误")); } Long taxAgentId = saveParam.getTaxAgentId(); if (Objects.isNull(taxAgentId)) { - throw new SalaryRunTimeException("个税扣缴义务人的id不允许为空"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542557,"个税扣缴义务人的id不允许为空")); } @@ -562,7 +562,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM @Override public PageInfo listExt(TaxAgentRangeExtQueryParam param) { if (param.getTaxAgentId() == null) { - throw new SalaryRunTimeException("扣缴义务人id为空"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544768,"扣缴义务人id为空")); } List taxAgentExtRangePOS = getTaxAgentExtRangeMapper().list(TaxAgentExtRangePO.builder().taxAgentId(param.getTaxAgentId()).build()); diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 1834d5f38..cebebcbb3 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -485,12 +485,12 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { // 被社保福利档案引用 List socialByPaymentOrganization = getInsuranceBaseInfoMapper().getSocialByPaymentOrganization(id); if(CollectionUtils.isNotEmpty(socialByPaymentOrganization)){ - throw new SalaryRunTimeException("存在社保福利档案引用"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544751, "存在社保福利档案引用")); } // 被社保福利台账引用 List insuranceArchiveList = getInsuranceAccountBatchMapper().list(InsuranceAccountBatchParam.builder().taxAgents(Collections.singletonList(id)).build()); if(CollectionUtils.isNotEmpty(insuranceArchiveList)){ - throw new SalaryRunTimeException("存在社保福利台账引用"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544752, "存在社保福利台账引用")); } //被社保福利档案引用 // List socialSchemePOList = new LambdaQueryChainWrapper<>(siArchivesSocialMapper) diff --git a/src/com/engine/salary/web/ExtEmpController.java b/src/com/engine/salary/web/ExtEmpController.java index 4e6225435..3a7904df8 100644 --- a/src/com/engine/salary/web/ExtEmpController.java +++ b/src/com/engine/salary/web/ExtEmpController.java @@ -93,7 +93,7 @@ public class ExtEmpController { User user = HrmUserVarify.getUser(request, response); XSSFWorkbook workbook = getExtEmpWrapper(user).exportImportTemplate(); String time = LocalDate.now().toString(); - String fileName = SalaryI18nUtil.getI18nLabel(0, "非系统人员导入模板") + time; + String fileName = SalaryI18nUtil.getI18nLabel(user.getLanguage(), 544311, "非系统人员导入模板") + time; try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8").replaceAll("\\+", "%20"); } catch (UnsupportedEncodingException e) { diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index b0ab6dd35..2335bc94c 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -263,7 +263,7 @@ public class SISchemeController { String fileName; //表头 if (param.isExtWelArchiveList()) { - fileName = SalaryI18nUtil.getI18nLabel(0, "社保福利档案导入模板") + "-" + SalaryI18nUtil.getI18nLabel(542679, "非系统人员"); + fileName = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542503, "社保福利档案导入模板") + "-" + SalaryI18nUtil.getI18nLabel(user.getLanguage(),542679, "非系统人员"); } else if (param.getRunStatuses().size() > 0) { if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { fileName = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542503, "社保福利档案导入模板") + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel(); diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index b21447172..901fe8180 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -687,14 +687,14 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy public void confirmSalaryBill(Long salaryInfoId) { if(ObjectUtil.isNull(salaryInfoId)){ - throw new SalaryRunTimeException("工资单id不能为空!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544769,"工资单id不能为空!")); } getSalaryBillService(user).confirmSalaryBill(salaryInfoId); } public void feedBackSalaryBill(Long salaryInfoId) { if(ObjectUtil.isNull(salaryInfoId)){ - throw new SalaryRunTimeException("工资单id不能为空!"); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(user.getLanguage(),544769, "工资单id不能为空!")); } getSalaryBillService(user).feedBackSalaryBill(salaryInfoId); }