From 2041031e92972749432cab0872f9b852073a2b0d Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 25 Aug 2022 11:43:52 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E8=96=AA=E9=85=AC=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=8C=89=E9=92=AE=E5=8C=B9=E9=85=8D=E9=A1=B9?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=A7=93=E5=90=8D-=E9=83=A8=E9=97=A8-?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=20=E6=B6=89=E5=8F=8A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=8E=A5=E5=8F=A3=E3=80=81=E6=95=B0=E6=8D=AE=E9=87=87?= =?UTF-8?q?=E9=9B=86=E5=AD=90=E8=8F=9C=E5=8D=95=E4=B8=AD=E7=9A=84=E5=9B=9B?= =?UTF-8?q?=E4=B8=AA=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AddUpDeductionServiceImpl.java | 11 +++++++++-- .../service/impl/AddUpSituationServiceImpl.java | 6 ++++-- .../service/impl/AttendQuoteDataServiceImpl.java | 6 ++++-- .../service/impl/OtherDeductionServiceImpl.java | 6 ++++-- .../salary/service/impl/SalaryArchiveServiceImpl.java | 8 ++++++-- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index a81048c93..b869ffa65 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -230,9 +230,16 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //相同的姓名 String userName = dto.getUsername(); String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); +// List employeeSameIds = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) +// && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) +// .collect(Collectors.toList()); + //20220824需求迭代,增加手机号作为导入校验项 List employeeSameIds = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) - && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) .collect(Collectors.toList()); + if (StringUtils.isBlank(userName)) { //姓名 不能为空 //错误消息对象 @@ -252,7 +259,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction .collect(Collectors.toList()); if (employeeSameIds.size() != 1) { Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"); + errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)"); errorData.add(errorMessageMap); errorSum += 1; }else{ diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index 74d4930d1..7acee0f68 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -614,8 +614,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //相同的姓名 String userName = dto.getUsername(); String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); List employeeSameIds = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) - && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) .collect(Collectors.toList()); @@ -638,7 +640,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation .collect(Collectors.toList()); if (employeeSameIds.size() != 1) { Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"); + errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)"); errorData.add(errorMessageMap); errorSum += 1; }else { diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index 70ab06b2e..83664d354 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -629,9 +629,11 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa String userName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(85429, "姓名"))).orElse("").toString(); String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86185, "部门"))).orElse("").toString(); + String mobile = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86186, "手机号"))).orElse("").toString(); List employeeSameIds = new ArrayList<>(); List emps = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) - && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) .collect(Collectors.toList()); //含在职和离职,选在职数据 if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { @@ -661,7 +663,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa errorSum += 1; } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, "员工信息不能为空且不可重复(姓名与部门同时确认唯一)")); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)")); excelComments.add(errorMessageMap); errorSum += 1; } else { diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 62458947e..1310299d1 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -212,10 +212,12 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //相同的姓名 String userName = dto.getUsername(); String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); List employeeSameIds = new ArrayList<>(); List emps = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) - && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) .collect(Collectors.toList()); //含在职和离职,选在职数据 if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { @@ -240,7 +242,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction errorSum += 1; } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"); + errorMessageMap.put("message", rowIndex + "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)"); errorData.add(errorMessageMap); errorSum += 1; } else { diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 6a446bd10..5fcae6a5a 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -905,7 +905,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // 1.姓名 String userName = Optional.ofNullable(map.get(userNameI18n)).orElse("").toString(); String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86185, "部门"))).orElse("").toString(); - List emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))).collect(Collectors.toList()); + String mobile = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86186, "手机号"))).orElse("").toString(); + List emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) + .collect(Collectors.toList()); List employeeSameIds = new ArrayList<>(); if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { employeeSameIds = emps.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); @@ -1012,7 +1016,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe if (!isEmpty && userNameI18n.equals(key)) { if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowindex + "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"); + errorMessageMap.put("message", rowindex + "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)"); excelComments.add(errorMessageMap); isError = true; } else if (employeeId == null) { From f71e222c73382d109484d51d859c4b64d755acd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 26 Aug 2022 14:06:21 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/AddUpDeductionService.java | 26 +++++++++++++++---- .../impl/AddUpDeductionServiceImpl.java | 18 +++++++++---- .../impl/SalaryEmployeeServiceImpl.java | 23 ++++++++++++---- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/com/engine/salary/service/AddUpDeductionService.java b/src/com/engine/salary/service/AddUpDeductionService.java index 001e5d39b..c8ac7c29a 100644 --- a/src/com/engine/salary/service/AddUpDeductionService.java +++ b/src/com/engine/salary/service/AddUpDeductionService.java @@ -16,22 +16,38 @@ import java.util.Map; public interface AddUpDeductionService { + /** + * 查询条件 + * @param params + * @return + */ Map getSearchCondition(Map params); + /** + * 导入 + * @param importParam + * @return + */ Map importAddUpDeduction(AddUpDeductionImportParam importParam); + /** + * 预览 + * @param importParam + * @return + */ Map preview(AddUpDeductionImportParam importParam ); + /** + * 下载模板 + * @param isChief + * @param queryParam + * @return + */ XSSFWorkbook downloadTemplate(boolean isChief,AddUpDeductionQueryParam queryParam); - - //-----------------------------------分权--------------------------------------------------- - - - /** * 通过id获取单条累计专项附加扣除记录 * diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index d8f2d2d78..e23f8985c 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -57,7 +57,14 @@ import java.util.*; import java.util.stream.Collectors; import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; - +/** + * 累计专项 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class AddUpDeductionServiceImpl extends Service implements AddUpDeductionService { private AddUpDeductionMapper getAddUpDeductionMapper() { @@ -94,11 +101,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //文本输入框 SearchConditionItem username = conditionFactory.createCondition(ConditionType.INPUT, 25034, "username"); username.setInputType("input"); - username.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 - username.setFieldcol(16); //条件输入框所占宽度,默认值18 + username.setColSpan(2); + username.setFieldcol(16); username.setLabelcol(8); - username.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 - username.setLabel("姓名"); //设置文本值 这个将覆盖多语言标签的值 + username.setViewAttr(2); + username.setLabel("姓名"); conditionItems.add(username); @@ -472,6 +479,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction * * @return */ + @Override public XSSFWorkbook exportDetail(Long beLongEmployeeId, boolean isChief, AddUpDeductionQueryParam queryParam) { queryParam.setEmployeeId(beLongEmployeeId); diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 7a79384aa..c54eb9688 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SalarySobRangeService; @@ -14,13 +15,11 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -104,7 +103,21 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee for (List longs : partition) { employeeList.addAll(getEmployMapper().getEmployeeByIds(longs)); } - return employeeList; + return employeeList; } + + + public List filterEmployees(List employees, String userName, String deparmentName, String mobile) { + List employeeSameIds = employees.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) + .collect(Collectors.toList()); + //存在离职和在职状态取在职状态 + employeeSameIds = employeeSameIds.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .collect(Collectors.toList()); + + return employeeSameIds; + } } From e1239d3018cd296bf56e32ad25cadb11bac3806d Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 29 Aug 2022 14:50:26 +0800 Subject: [PATCH 3/9] =?UTF-8?q?xzy-=E6=A0=B8=E7=AE=97=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=88=86=E9=83=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/datacollection/DataCollectionEmployee.java | 4 +++- .../entity/salaryacct/bo/SalaryAcctFormulaBO.java | 1 + .../salaryacct/param/SalaryAcctEmployeeQueryParam.java | 2 ++ .../salaryformula/dto/SalaryFormulaEmployeeDTO.java | 10 ++++++++++ .../salary/mapper/datacollection/EmployMapper.xml | 4 +++- .../service/impl/SalaryAcctResultServiceImpl.java | 1 + 6 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java index 0b32fc302..f33bc1111 100644 --- a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java +++ b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java @@ -39,7 +39,8 @@ public class DataCollectionEmployee { @SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86185, dataType = "string") private Long departmentId; - //分部 + //分部名 + @SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "string") private String subcompanyName; private Long subcompanyid; @@ -98,4 +99,5 @@ public class DataCollectionEmployee { //是否是系统管理员 private Boolean isAdmin; + } diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 901c1bc4a..93ab2ef33 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -83,6 +83,7 @@ public class SalaryAcctFormulaBO { .sex(sexName) .status(simpleEmployee.getStatus()) .departmentName(simpleEmployee.getDepartmentName()) + .subcompanyName(simpleEmployee.getSubcompanyName()) .jobtitleName(simpleEmployee.getJobtitleName()) .jobcall(simpleEmployee.getJobcall()) .companystartdate(simpleEmployee.getCompanystartdate()) diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java index c8fd1445b..27eb89f4b 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java @@ -36,6 +36,8 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam { //部门") private Collection departmentIds; + + //岗位") private Collection positionIds; diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java index f1ab88fd2..98ca85442 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java @@ -37,6 +37,12 @@ public class SalaryFormulaEmployeeDTO { private Long departmentId; + //分部 + @SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "string") + private String subcompanyName; + + + //岗位 @SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string") private String jobtitleName; @@ -85,4 +91,8 @@ public class SalaryFormulaEmployeeDTO { @SalaryFormulaVar(defaultLabel = "出生日期", labelId = 98624, dataType = "string") private String birthday; + + + + } diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 812e005ad..02b465187 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -45,10 +45,12 @@ c.id as jobtitleId, e.companystartdate as companystartdate, e.mobile as mobile, - e.enddate as dismissdate + e.enddate as dismissdate, + sc.SUBCOMPANYNAME as subcompanyName from hrmresource e left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) AND e.id IN diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 98fb02af7..103b81435 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -288,6 +288,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 查询人员信息 List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List simpleEmployees = getSalaryEmployeeService(user).listByIds(employeeIds); + // 查询个税扣缴义务人 Set taxAgentIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getTaxAgentId); List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); From a13d56063b50791cc4c8b05b8e1f99ed475e99f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 29 Aug 2022 16:06:56 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix=E7=B4=AF=E8=AE=A1=E5=B7=B2=E9=A2=84?= =?UTF-8?q?=E6=89=A3=E9=A2=84=E7=BC=B4=E7=A8=8E=E9=A2=9D=EF=BC=8C=E5=B8=A6?= =?UTF-8?q?=E5=85=A5=E4=B8=AA=E7=A8=8E=E8=B0=83=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxdeclaration/bo/TaxDeclarationBO.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index c028f8f1c..6a4ee80f6 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -375,14 +375,14 @@ public class TaxDeclarationBO { //累计减免税额 BigDecimal addUpTaxDeduction = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_TAX_DEDUCTION, resultMap, salaryItemMap); // 累计已预扣预缴税额 -// List resultPOS = resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.ADD_UP_ADVANCE_TAX, 0L)); -// BigDecimal addUpAdvanceTax = resultPOS == null ? BigDecimal.ZERO : resultPOS.stream() -// .map(salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue())) -// .min(BigDecimal::compareTo) -// .orElse(BigDecimal.ZERO); -// // 本月(次)应补(退)税额 -// BigDecimal refundedOrSupplementedTax = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.REFUNDED_OR_SUPPLEMENTED_TAX, 0L)), -// salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue())); + List resultPOS = resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.ADD_UP_ADVANCE_TAX, 0L)); + BigDecimal addUpAdvanceTax = resultPOS == null ? BigDecimal.ZERO : resultPOS.stream() + .map(salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue())) + .min(BigDecimal::compareTo) + .orElse(BigDecimal.ZERO); + // 本月(次)应补(退)税额 + BigDecimal refundedOrSupplementedTax = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.REFUNDED_OR_SUPPLEMENTED_TAX, 0L)), + salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue())); // 生成往期累计情况 AddUpSituation accumulatedSituation = AddUpSituation.builder() .employeeId(employeeId) @@ -405,7 +405,7 @@ public class TaxDeclarationBO { .addUpOtherDeduction(addUpOtherDeduction.toPlainString()) .addUpTaxExemptIncome(addUpTaxFreeIncome.toPlainString()) .addUpAllowedDonation(addUpAllowedDonation.toPlainString()) - .addUpAdvanceTax(addUpTaxPayable.toPlainString()) + .addUpAdvanceTax(addUpAdvanceTax.add(refundedOrSupplementedTax).toPlainString()) .addUpTaxSavings(addUpTaxDeduction.toPlainString()) .creator(taxDeclaration.getCreator()) .createTime(taxDeclaration.getCreateTime()) From 3fba03d482b6ba90babacf5307b0e1790d265d05 Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 30 Aug 2022 09:15:37 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=AF=BC=E5=85=A5=E7=9B=B8=E5=85=B3=E7=9A=84?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E5=8C=B9=E9=85=8D=E9=80=BB=E8=BE=91=E5=8F=8A?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctExcelServiceImpl.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 4e1240ae2..dc649b276 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalarySobEmpFieldDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; @@ -348,8 +349,11 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } // 模板表头(默认必带"个税扣缴义务人"、"姓名") - List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"), "部门", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")); - List dataIndexList = Lists.newArrayList("username", "departmentName", "taxAgentName"); + List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"), + "部门", + SalaryI18nUtil.getI18nLabel(86186, "手机号"), + SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")); + List dataIndexList = Lists.newArrayList("username", "departmentName", "mobile", "taxAgentName"); // 查询薪资项目 List salaryItemPOS = getSalaryItemService(user).listByIds(param.getSalaryItemIds()); for (SalaryItemPO salaryItemPO : salaryItemPOS) { @@ -447,6 +451,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"), SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")); // 查询薪资账套下的薪资项目 SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + + // 员工信息 + for (SalarySobEmpFieldDTO item : salarySobItemAggregateDTO.getEmpFields()) { + if (!"姓名".equals(item.getFieldName()) && !"个税扣缴义务人".equals(item.getFieldName())) { + if ("手机".equals(item.getFieldName())) { + headerList.add("手机号"); + } else { + headerList.add(item.getFieldName()); + } + } + + } // 薪资项目分类下的新资项目 for (SalarySobItemGroupDTO itemGroup : salarySobItemAggregateDTO.getItemGroups()) { for (SalarySobItemDTO item : itemGroup.getItems()) { @@ -595,6 +611,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc String deparmentName = (String) map.getOrDefault("部门", ""); + String mobile = (String) map.getOrDefault("手机号", ""); + if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(85429, "姓名"), dataKey.toString())) { usernameIndex = j; if (StringUtils.isEmpty(dataValue)) { @@ -606,7 +624,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } else { List employeeSameIds = salaryEmployees.stream().filter(e -> (StringUtils.isBlank(dataValue) || Objects.equals(e.getUsername(), dataValue)) - && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile))) .collect(Collectors.toList()); if (CollectionUtils.isEmpty(employeeSameIds)) { @@ -623,7 +642,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (employeeSameIds.size() != 1) { isError = true; Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", row + "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"); + errorMessageMap.put("message", row + "员工信息不能为空且不可重复(姓名、部门和手机号同时确认唯一)"); excelComments.add(errorMessageMap); } else { employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0).getEmployeeId() : null; From feb1e14c29160f4f9e88bbf429634e55c60f180e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 30 Aug 2022 09:19:29 +0800 Subject: [PATCH 6/9] =?UTF-8?q?xzy-fix=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E4=BA=BA=E6=95=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 2596c9747..87d5d2349 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -774,11 +774,12 @@ public class SIAccountBiz extends Service { boolean fundPersonFlag = false; boolean otherPersonFlag = false; for (InsuranceAccountDetailPO item : v) { - socialPersonFlag = StringUtils.isBlank(item.getSocialSum()); + // 判断社保是否为0 + socialPersonFlag = (StringUtils.isBlank(item.getSocialSum()) || item.getSocialSum().equals("0")); BigDecimal socialPerson = socialPersonFlag ? new BigDecimal("0") : new BigDecimal(item.getSocialSum()); - fundPersonFlag = StringUtils.isBlank(item.getFundSum()); + fundPersonFlag = (StringUtils.isBlank(item.getFundSum()) || item.getFundSum().equals("0")); BigDecimal fundPerson = fundPersonFlag ? new BigDecimal("0") : new BigDecimal(item.getFundSum()); - otherPersonFlag = StringUtils.isBlank(item.getOtherSum()); + otherPersonFlag = (StringUtils.isBlank(item.getOtherSum()) || item.getOtherSum().equals("0")); BigDecimal otherPerson = otherPersonFlag ? new BigDecimal("0") : new BigDecimal(item.getOtherSum()); socialTemp = socialTemp.add(socialPerson); fundTemp = fundTemp.add(fundPerson); From 387b6a2897eb59d967b52229b173379904d48af3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 31 Aug 2022 15:06:49 +0800 Subject: [PATCH 7/9] =?UTF-8?q?xzy-=E5=9C=A8=E8=96=AA=E8=B5=84=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E4=BB=A5=E5=8F=8A=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E7=9A=84=E9=AB=98=E7=BA=A7=E6=90=9C=E7=B4=A2=E4=B8=AD,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E9=83=A8=E6=90=9C=E7=B4=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryAcctEmployeeQueryParam.java | 5 +++- .../param/SalaryAcctResultQueryParam.java | 3 +++ .../param/SalaryArchiveQueryParam.java | 3 +++ .../mapper/archive/SalaryArchiveMapper.xml | 19 ++++++++++++++ .../salaryacct/SalaryAcctEmployeeMapper.xml | 25 +++++++++++++++++++ .../impl/SalaryArchiveServiceImpl.java | 1 + 6 files changed, 55 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java index 27eb89f4b..fcfa1a4e4 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java @@ -7,6 +7,7 @@ import com.engine.salary.util.valid.DataCheck; import lombok.*; import java.util.Collection; +import java.util.List; /** * 薪资核算人员列表查询条件 @@ -33,11 +34,13 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam { //个税扣缴义务人") private Long taxAgentId; + //分部 + private List subcompanyIds; + //部门") private Collection departmentIds; - //岗位") private Collection positionIds; diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java index cd8ea51b6..dd49ccb6c 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java @@ -35,6 +35,9 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam { //个税扣缴义务人 private Long taxAgentId; + //分部 + private Collection subcompanyIds; + //部门 private Collection departmentIds; diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java index 599a48d9d..268f31fde 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java @@ -32,6 +32,9 @@ public class SalaryArchiveQueryParam extends BaseQueryParam { //个税扣缴义务人id private Long taxAgentId; + //分部id + private List subcompanyIds; + //部门id private List departmentIds; diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index 4b7f0c8a4..5381fd7b2 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -118,6 +118,13 @@ AND e.lastname like CONCAT('%',#{param.username},'%') + + + AND c.id IN + + #{subcompanyId} + + AND d.id IN @@ -169,6 +176,12 @@ AND e.lastname like '%'||#{param.username}||'%' + + AND c.id IN + + #{subcompanyId} + + AND d.id IN @@ -220,6 +233,12 @@ AND e.lastname like '%'+#{param.username}+'%' + + AND c.id IN + + #{subcompanyId} + + AND d.id IN diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 060e48e56..21d33debf 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -497,6 +497,7 @@ AND tax_agent_id = #{param.taxAgentId} @@ -507,6 +508,13 @@ AND em.lastname LIKE '%'||#{param.employeeName}||'%' + -- 分部 + + AND em.subcompanyid1 IN + + #{subcompanyId} + + AND em.departmentid IN @@ -552,6 +560,7 @@ AND tax_agent_id = #{param.taxAgentId} @@ -562,6 +571,13 @@ AND em.lastname LIKE '%'+#{param.employeeName}+'%' + -- 分部 + + AND em.subcompanyid1 IN + + #{subcompanyId} + + AND em.departmentid IN @@ -719,6 +735,7 @@ AND tax_agent_id = #{param.taxAgentId} @@ -729,6 +746,14 @@ AND em.lastname LIKE CONCAT('%',#{param.employeeName},'%') + -- 分部 + + AND em.subcompanyid1 IN + + #{subcompanyId} + + + -- 部门 AND em.departmentid IN diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 5fcae6a5a..c4753247c 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -131,6 +131,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe return pageInfo; } + // 获取作为管理员的所有个税扣缴义务人列表 Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); From cc24406319da6ae34f6d3932b3ba9d6491b67bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 1 Sep 2022 16:17:27 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=90=91=E4=B8=8A=E6=B1=82=E5=81=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryacct/bo/SalaryAcctFormulaBO.java | 11 ++++++++++- .../engine/salary/enums/SalaryRoundingModeEnum.java | 3 ++- .../salary/enums/sicategory/RententionRuleEnum.java | 3 ++- src/com/engine/salary/util/SalaryEntityUtil.java | 9 +++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 93ab2ef33..3fe86f1d7 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -57,6 +57,15 @@ public class SalaryAcctFormulaBO { bigDecimalValue = bigDecimalValue.setScale(salaryItem.getPattern() + 1, RoundingMode.FLOOR); roundingMode = RoundingMode.UP; } + + //向上取偶 + if (Objects.equals(salaryItem.getRoundingMode(), SalaryRoundingModeEnum.UP_EVEN.getValue())) { + bigDecimalValue = bigDecimalValue.setScale(0, RoundingMode.UP); + int number = bigDecimalValue.intValue(); + if (number % 2 != 0) { + bigDecimalValue = bigDecimalValue.add(BigDecimal.valueOf(1)); + } + } return bigDecimalValue.setScale(salaryItem.getPattern(), roundingMode).toPlainString(); } @@ -71,7 +80,7 @@ public class SalaryAcctFormulaBO { return Collections.emptyMap(); } String sexName = Optional.ofNullable(simpleEmployee.getSex()) - .map(sex -> StringUtils.equals(sex,"0") ? SalaryI18nUtil.getI18nLabel(102440, "男") + .map(sex -> StringUtils.equals(sex, "0") ? SalaryI18nUtil.getI18nLabel(102440, "男") : SalaryI18nUtil.getI18nLabel(102442, "女")) .orElse(StringUtils.EMPTY); SalaryFormulaEmployeeDTO formulaEmployee = SalaryFormulaEmployeeDTO.builder() diff --git a/src/com/engine/salary/enums/SalaryRoundingModeEnum.java b/src/com/engine/salary/enums/SalaryRoundingModeEnum.java index 127827281..288aa7b07 100644 --- a/src/com/engine/salary/enums/SalaryRoundingModeEnum.java +++ b/src/com/engine/salary/enums/SalaryRoundingModeEnum.java @@ -18,7 +18,8 @@ public enum SalaryRoundingModeEnum implements BaseEnum { ROUNDING(2, "四舍五入", 84505), ROUND_UP(3, "向上舍入", 84506), ROUND_DOWN(4, "向下舍入", 84507), - CEILING(5, "见分进角", 84507); + CEILING(5, "见分进角", 84507), + UP_EVEN(6, "向上求偶", 84507); private int value; diff --git a/src/com/engine/salary/enums/sicategory/RententionRuleEnum.java b/src/com/engine/salary/enums/sicategory/RententionRuleEnum.java index f24b79c0b..0605dfa67 100644 --- a/src/com/engine/salary/enums/sicategory/RententionRuleEnum.java +++ b/src/com/engine/salary/enums/sicategory/RententionRuleEnum.java @@ -18,7 +18,8 @@ public enum RententionRuleEnum implements BaseEnum { ROUND(BigDecimal.ROUND_HALF_UP, "四舍五入", 84505), CEIL(BigDecimal.ROUND_UP, "向上舍入", 84506), FLOOR(BigDecimal.ROUND_DOWN, "向下舍入", 84507), - CEILING(5, "见分进角", 84507); + CEILING(5, "见分进角", 84507), + UP_EVEN(6, "向上求偶", 84507); private int value; diff --git a/src/com/engine/salary/util/SalaryEntityUtil.java b/src/com/engine/salary/util/SalaryEntityUtil.java index 254a18639..5fddd121e 100644 --- a/src/com/engine/salary/util/SalaryEntityUtil.java +++ b/src/com/engine/salary/util/SalaryEntityUtil.java @@ -1,5 +1,6 @@ package com.engine.salary.util; +import com.engine.salary.enums.SalaryRoundingModeEnum; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.apache.commons.collections.CollectionUtils; @@ -188,6 +189,14 @@ public class SalaryEntityUtil { value = value.setScale(newScale + 1, RoundingMode.FLOOR); roundingMode = RoundingMode.UP; } + //向上取偶 + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.UP_EVEN.getValue())) { + value = value.setScale(0, RoundingMode.UP); + int number = value.intValue(); + if (number % 2 != 0) { + value = value.add(BigDecimal.valueOf(1)); + } + } return value.setScale(newScale, roundingMode); } From 38edb1bbb87cb54f3cfc8cf259eb0b69776e6573 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 1 Sep 2022 17:06:30 +0800 Subject: [PATCH 9/9] =?UTF-8?q?xzy-fix=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=97=B6=E6=B7=BB=E5=8A=A0=E8=B5=B7=E5=A7=8B?= =?UTF-8?q?=E5=8F=91=E8=96=AA=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryArchiveServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index c4753247c..7c010c910 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -1038,7 +1038,20 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } else if (!isEmpty && taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust)) { // 2.个税扣缴义务人列处理(初始化导入或调整个税扣缴义务人) isError = handleTaxAgent(isError, isInit, excelComments, errorCount, j, taxAgentId, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, map); - } else if (!isEmpty && effectiveTimeI18n.equals(key) && effectiveTime == null) { + } else if (!isEmpty && payStartDateI18n.equals(key) && payStartDate == null) { + // 起始发薪日期 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "发薪起始日期格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'"); + excelComments.add(errorMessageMap); + isError = true; + }else if (!isEmpty && payEndDateI18n.equals(key) && !payEndDateCellVal.equals("") && !SalaryDateUtil.checkDay(payEndDateCellVal)) { + // 最后发薪日期 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "最后发薪日期格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'"); + excelComments.add(errorMessageMap); + isError = true; + // 5.薪资项目列处理(初始化导入或调薪) + }else if (!isEmpty && effectiveTimeI18n.equals(key) && effectiveTime == null) { // 3.生效时间处理 Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowindex + "生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'");