From e9c95918eb300c2fdfab7d459a1d098b94d667ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Tue, 2 Aug 2022 14:58:18 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=A0=B8=E7=AE=97=E8=A1=A8=E5=A4=B4?=
=?UTF-8?q?=E5=B8=A6=E4=B8=8A=E5=85=AC=E5=BC=8F=202=E3=80=81=E4=BF=AE?=
=?UTF-8?q?=E5=A4=8D=E6=A0=B8=E7=AE=97=E6=97=B6=E5=8F=96=E7=A6=8F=E5=88=A9?=
=?UTF-8?q?=E5=8F=B0=E8=B4=A6=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF=E4=B8=8D?=
=?UTF-8?q?=E5=87=86=E7=A1=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dto/SalaryAcctResultListColumnDTO.java | 32 ++++++++++++++
.../bo/SalarySobItemAggregateBO.java | 25 +++++++++--
.../dto/SalarySobItemAggregateDTO.java | 3 ++
.../salarysob/dto/SalarySobItemDTO.java | 3 ++
.../dto/SalarySobItemIncomeCategoryDTO.java | 33 ++++++++++++++
.../InsuranceAccountDetailMapper.java | 22 +++++++---
.../InsuranceAccountDetailMapper.xml | 1 +
.../service/SalaryAcctResultService.java | 9 ++++
.../service/impl/SIAccountServiceImpl.java | 44 +++++++++++--------
.../impl/SalaryAcctResultServiceImpl.java | 39 +++++++++++++++-
.../salary/web/SalaryAcctController.java | 14 ++++--
.../wrapper/SalaryAcctResultWrapper.java | 11 +++++
12 files changed, 202 insertions(+), 34 deletions(-)
create mode 100644 src/com/engine/salary/entity/salaryacct/dto/SalaryAcctResultListColumnDTO.java
create mode 100644 src/com/engine/salary/entity/salarysob/dto/SalarySobItemIncomeCategoryDTO.java
diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctResultListColumnDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctResultListColumnDTO.java
new file mode 100644
index 000000000..3b43cb86c
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctResultListColumnDTO.java
@@ -0,0 +1,32 @@
+package com.engine.salary.entity.salaryacct.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 薪资核算结果的表头
+ *
Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Accessors(chain = true)
+public class SalaryAcctResultListColumnDTO {
+
+ //薪资项目名称
+ private String columnName;
+
+ //公式id
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long formulaId;
+
+ //公式内容
+ private String formulaContent;
+
+ //是否需要展示锁定标识
+ private boolean showLock;
+}
diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
index 9e46b8a76..bd8203929 100644
--- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
+++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
@@ -5,20 +5,19 @@ import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO;
import com.engine.salary.entity.salaryitem.bo.SalaryItemBO;
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;
+import com.engine.salary.entity.salarysob.dto.*;
import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
+import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.AllArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import weaver.general.BaseBean;
@@ -122,11 +121,29 @@ public class SalarySobItemAggregateBO {
});
// 薪资账套的员工信息字段po转换成dto
List salarySobEmpFieldDTOS = buildEmpField(salarySobEmpFields);
+
+ List incomeCategories = Lists.newArrayList();
+// List incomeCategoryValues = JsonUtil.parseList(salarySob.getIncomeCategory(), Integer.class);
+ Integer incomeCategory = salarySob.getIncomeCategory();
+ List incomeCategoryValues = Lists.newArrayList(incomeCategory);
+ for (Integer incomeCategoryValue : incomeCategoryValues) {
+ IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(incomeCategoryValue);
+ SalarySobItemIncomeCategoryDTO salarySobItemIncomeCategoryDTO = new SalarySobItemIncomeCategoryDTO()
+ .setId(incomeCategoryValue.longValue())
+ .setName(Optional.ofNullable(incomeCategoryEnum)
+ .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
+ .orElse(StringUtils.EMPTY))
+ .setItemGroups(sortItemGroup(salarySobItemGroupDTOS))
+ .setItems(sortItem(itemsWithoutGroup));
+ incomeCategories.add(salarySobItemIncomeCategoryDTO);
+ }
+
return SalarySobItemAggregateDTO.builder()
.salarySobId(salarySob.getId())
.empFields(salarySobEmpFieldDTOS)
.items(sortItem(itemsWithoutGroup))
.itemGroups(sortItemGroup(salarySobItemGroupDTOMap.values()))
+ .incomeCategories(incomeCategories)
.build();
}
diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemAggregateDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemAggregateDTO.java
index 59eab1bf7..a002508a9 100644
--- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemAggregateDTO.java
+++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemAggregateDTO.java
@@ -36,4 +36,7 @@ public class SalarySobItemAggregateDTO {
//薪资账套的薪资项目详情-薪资项目(未分类)
private List items;
+
+ //薪资账套的薪资项目按薪资类型分类(账套目前只含一个类型,只给核算表头带出公式使用。未来若账套包含多类型时,可用于扩展)
+ private List incomeCategories;
}
diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
index 21552703f..16a7033d5 100644
--- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
+++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
@@ -41,6 +41,9 @@ public class SalarySobItemDTO {
//名称
private String name;
+ //是否是薪资档案引用
+ private Integer useInEmployeeSalary;
+
//是否是系统内置的薪资项目 @see SalarySystemTypeEnum
private Integer systemType;
diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemIncomeCategoryDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemIncomeCategoryDTO.java
new file mode 100644
index 000000000..4827c1222
--- /dev/null
+++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemIncomeCategoryDTO.java
@@ -0,0 +1,33 @@
+package com.engine.salary.entity.salarysob.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 薪资账套下的薪资项目按薪资类型分类
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Accessors(chain = true)
+//薪资账套下的薪资项目按薪资类型分类
+public class SalarySobItemIncomeCategoryDTO {
+
+ //薪资类型的id
+ private Long id;
+
+ //薪资类型的名称
+ private String name;
+
+ //薪资账套的薪资项目详情-薪资项目分类
+ private List itemGroups;
+
+ //薪资账套的薪资项目详情-薪资项目(未分类)
+ private List items;
+
+}
diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
index 480397dd9..1871ca855 100644
--- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
+++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java
@@ -11,7 +11,6 @@ import java.util.List;
/**
* @Author weaver_cl
- *
* @Date 2022/4/11
* @Version V1.0
**/
@@ -19,21 +18,24 @@ public interface InsuranceAccountDetailMapper {
/**
* 查询正常缴纳列表
+ *
* @param queryParam
* @return
*/
- List list(@Param("param")InsuranceAccountDetailParam queryParam);
+ List list(@Param("param") InsuranceAccountDetailParam queryParam);
/**
* 根据账单月份获取所有员工
+ *
* @param time
* @return
*/
- List selectAccountIds(@Param("time") String time,@Param("paymentOrganization") Long paymentOrganization);
+ List selectAccountIds(@Param("time") String time, @Param("paymentOrganization") Long paymentOrganization);
/**
* 根据缴纳组织获取员工id
+ *
* @param paymentOrganization
* @return
*/
@@ -41,17 +43,19 @@ public interface InsuranceAccountDetailMapper {
/**
* 根据id删除
+ *
* @param id
*/
- void deleteById(@Param("id")Long id);
+ void deleteById(@Param("id") Long id);
/**
* 批量删除
*/
- void batchDelAccountDetails(@Param("employeeIds") Collection employeeIds, @Param("billMonth") String billMonth,@Param("paymentOrganization") Long paymentOrganization);
+ void batchDelAccountDetails(@Param("employeeIds") Collection employeeIds, @Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization);
/**
* 批量保存
+ *
* @param accounts
*/
void batchSaveAccountDetails(@Param("accounts") Collection accounts);
@@ -59,23 +63,26 @@ public interface InsuranceAccountDetailMapper {
/**
* 条件查询
+ *
* @param billMonth
* @return
*/
List selectList(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization);
- List queryList(@Param("billMonth") String billMonth,@Param("employeeIds") Collection employeeIds);
+ List queryList(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization, @Param("employeeIds") Collection employeeIds);
/**
* 根据账单月份删除
+ *
* @param billMonth
*/
- void batchDeleteNotFile(@Param("billMonth") String billMonth,@Param("paymentOrganization") Long paymentOrganization);
+ void batchDeleteNotFile(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization);
/**
* 批量删除
+ *
* @param pos
*/
void batchDelSupplementAccountDetails(@Param("pos") Collection pos);
@@ -83,6 +90,7 @@ public interface InsuranceAccountDetailMapper {
/**
* 根据员工id批量删除
+ *
* @param pos
*/
void batchDelSupplementDetailsByIds(@Param("pos") Collection pos);
diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
index 510ef8fb6..fceba82f8 100644
--- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
+++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml
@@ -179,6 +179,7 @@
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.bill_month = #{billMonth}
+ AND t.payment_organization = #{paymentOrganization}
AND employee_id IN
diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java
index d73748fe1..764edfbf5 100644
--- a/src/com/engine/salary/service/SalaryAcctResultService.java
+++ b/src/com/engine/salary/service/SalaryAcctResultService.java
@@ -3,6 +3,7 @@ package com.engine.salary.service;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
+import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO;
import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctResultSaveParam;
@@ -88,6 +89,14 @@ public interface SalaryAcctResultService {
*/
ConsolidatedTaxDetailDTO getConsolidatedTaxDetail(Long salaryAcctEmployeeId);
+ /**
+ * 根据薪资核算记录id获取表头数据
+ *
+ * @param salaryAcctRecordId
+ * @return
+ */
+ Map getColumnBySalaryAcctRecordId(Long salaryAcctRecordId);
+
/**
* 保存
*
diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
index cf07d72e4..b04455006 100644
--- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
@@ -87,6 +87,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
+ private InsuranceAccountBatchMapper getInsuranceAccountBatchMapper() {
+ return MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class);
+ }
+
+ private InsuranceAccountDetailMapper getInsuranceAccountDetailMapper() {
+ return MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class);
+ }
+
@Override
public Map listPage(InsuranceAccountBatchParam queryParam) {
Long employeeId = (long) user.getUID();
@@ -223,7 +231,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
//补缴缴纳列表
queryParam.setPaymentStatus(PaymentStatusEnum.REPAIR.getValue());
SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize());
- List list = MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).list(queryParam);
+ List list = getInsuranceAccountDetailMapper().list(queryParam);
PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountDetailPO.class);
List insuranceAccountDetailPOS = pageInfo.getList();
InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(insuranceAccountDetailPOS);
@@ -277,7 +285,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
datePickerItem.getOtherParams().put("minDate", minDate);
datePickerItem.getOtherParams().put("maxDate", maxDate);
- List billMonthList = MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class).listByTimeRange(minDate, maxDate);
+ List billMonthList = getInsuranceAccountBatchMapper().listByTimeRange(minDate, maxDate);
SiAccountEncrypt.decryptInsuranceAccountBatchList(billMonthList);
if (CollectionUtils.isEmpty(billMonthList)) {
datePickerItem.getOtherParams().put("disabledData", Collections.emptyList());
@@ -367,7 +375,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
List insuranceAccountInspectPOS = MapperProxyFactory.getProxy(InsuranceAccountInspectMapper.class).getByInspectStatusAndIds(InspectStatusEnum.COMFORED.getValue(), ids);
if (CollectionUtils.isNotEmpty(insuranceAccountInspectPOS)) {
- MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).batchUnConfirmedInspectDetails(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getId).collect(Collectors.toList()));
+ getInsuranceAccountDetailMapper().batchUnConfirmedInspectDetails(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getId).collect(Collectors.toList()));
}
}
@@ -389,14 +397,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
List insuranceAccountInspectPOS = MapperProxyFactory.getProxy(InsuranceAccountInspectMapper.class).getByInspectStatusAndIds(InspectStatusEnum.IGNORE.getValue(), ids);
if (CollectionUtils.isNotEmpty(insuranceAccountInspectPOS)) {
- MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).batchIgnoreInspectDetails(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getId).collect(Collectors.toList()));
+ getInsuranceAccountDetailMapper().batchIgnoreInspectDetails(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getId).collect(Collectors.toList()));
}
}
@Override
public InsuranceAccountTabDTO tabList(AccountParam build) {
InsuranceAccountTabDTO insuranceAccountTabDTO = InsuranceAccountTabDTO.builder().build();
- InsuranceAccountBatchPO insuranceAccountBatchPO = MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class).getByBillMonth(build.getBillMonth(), build.getPaymentOrganization());
+ InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(build.getBillMonth(), build.getPaymentOrganization());
insuranceAccountBatchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO);
boolean isShow = false;
if (insuranceAccountBatchPO == null || insuranceAccountBatchPO.getBillStatus() == BillStatusEnum.NOT_ARCHIVED.getValue()) {
@@ -436,7 +444,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
Map datas = new HashMap<>();
Long employeeId = (long) user.getUID();
SalaryPageUtil.start(param.getCurrent(), param.getPageSize());
- List insuranceArchivesEmployeePOS = MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).changeList(param.getUserName());
+ List insuranceArchivesEmployeePOS = getInsuranceAccountDetailMapper().changeList(param.getUserName());
PageInfo pageInfo = new PageInfo<>(insuranceArchivesEmployeePOS);
List