From 64e34d6d085e2f2bb3fc7dcb8f94861a39f831dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Thu, 13 Jun 2024 17:46:37 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E9=A2=84=E8=A7=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salaryBill/param/SalaryPreviewParam.java | 32 +++
.../salary/service/SalaryBillService.java | 12 ++
.../salary/service/SalarySendService.java | 7 +
.../service/impl/SalaryBillServiceImpl.java | 2 +-
.../service/impl/SalarySendServiceImpl.java | 186 ++++++++++++++++++
.../salary/web/SalaryBillController.java | 15 ++
.../salary/wrapper/SalarySendWrapper.java | 4 +
7 files changed, 257 insertions(+), 1 deletion(-)
create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java
diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java
new file mode 100644
index 000000000..8d48e5118
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java
@@ -0,0 +1,32 @@
+package com.engine.salary.entity.salaryBill.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 工资单预览参数
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalaryPreviewParam {
+
+ /**
+ * 工资单id
+ */
+ private Long salaryInfoId;
+
+ /**
+ * 员工id
+ */
+ private Long recipient;
+
+}
diff --git a/src/com/engine/salary/service/SalaryBillService.java b/src/com/engine/salary/service/SalaryBillService.java
index 530c3080e..4878df87b 100644
--- a/src/com/engine/salary/service/SalaryBillService.java
+++ b/src/com/engine/salary/service/SalaryBillService.java
@@ -1,7 +1,10 @@
package com.engine.salary.service;
+import com.engine.salary.entity.salaryBill.dto.SalaryBillSendDTO;
import com.engine.salary.entity.salaryBill.param.SalaryExportPdfParam;
import com.engine.salary.entity.salaryBill.param.SalarySendGrantParam;
+import com.engine.salary.entity.salaryBill.po.SalarySendPO;
+import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import java.util.List;
import java.util.Map;
@@ -52,6 +55,15 @@ public interface SalaryBillService {
String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam);
+ /**
+ * 构建发放参数
+ * @param salarySend
+ * @param taxAgentName
+ * @param salaryTemplate
+ * @return
+ */
+ SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate);
+
/**
* 工资单撤回
*
diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java
index 72fc71423..4f570039b 100644
--- a/src/com/engine/salary/service/SalarySendService.java
+++ b/src/com/engine/salary/service/SalarySendService.java
@@ -218,4 +218,11 @@ public interface SalarySendService {
List getByIds(List salarySendId);
List listSome(SalarySendPO param);
+
+ /**
+ * 工资单预览
+ * @param param
+ * @return
+ */
+ Map preview(SalaryPreviewParam param);
}
diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java
index eaf9c0be1..060f15cb2 100644
--- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java
@@ -337,7 +337,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService
* @param salaryTemplate
* @return
*/
- private SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) {
+ public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) {
// 发送通道
Set sendChannels = SalaryBillBO.buildSendChannels(salaryTemplate);
if (CollectionUtils.isEmpty(sendChannels)) {
diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java
index efd438444..5e61fec2d 100644
--- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java
@@ -1834,4 +1834,190 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
public List listSome(SalarySendPO param) {
return getSalarySendMapper().listSome(param);
}
+
+ @Override
+ public Map preview(SalaryPreviewParam param) {
+ Long salaryInfoId = param.getSalaryInfoId();
+ Long recipient = param.getRecipient();
+
+ if (salaryInfoId == null) {
+ throw new SalaryRunTimeException("工资单记录不存在!");
+ }
+ SalarySendInfoPO po = new SalarySendInfoPO();
+ po.setDeleteType(0);
+ po.setId(salaryInfoId);
+
+ List salarySendInfos = salarySendInfoMapper.listSome(po);
+ if (CollectionUtils.isEmpty(salarySendInfos)) {
+ throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "工资单信息不存在"));
+ }
+
+ SalarySendInfoPO salarySendInfo = salarySendInfos.get(0);
+
+ // 获取默认模板信息
+ SalarySendPO salarySendPO = getSalarySendMapper().getById(salarySendInfo.getSalarySendId());
+ if (salarySendPO == null) {
+ throw new SalaryRunTimeException("工资单不存在");
+ }
+
+
+ SalarySendPO sendPo = new SalarySendPO();
+ sendPo.setDeleteType(0);
+ sendPo.setId(salarySendInfo.getSalarySendId());
+ List salarySends = mapper.listSome(sendPo);
+ if (CollectionUtils.isEmpty(salarySends)) {
+ throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在"));
+ }
+ SalarySendPO salarySend = salarySends.get(0);
+ Date salaryMonth = salarySend.getSalaryMonth();
+
+
+ // 获取模板
+ SalarySobPO salarySob = getSalarySobService(user).getById(salarySend.getSalarySobId());
+ TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId());
+ List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Arrays.asList(salarySend.getSalarySobId(), salarySob.getId()));
+ if (CollectionUtils.isEmpty(salaryTemplates)) {
+ throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送"));
+ }
+ SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(sendPo, taxAgentPO.getName(), salaryTemplates.get(0));
+
+ SalaryTemplatePO salaryTemplate = salaryBillSendDTO.getSalaryTemplate();
+ if (salaryTemplate==null) {
+ throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100513, "没有默认模板,无法查看"));
+ }
+
+ // 判断是否是补发
+ boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType());
+
+ SalaryAcctResultPO acctPo = new SalaryAcctResultPO();
+ acctPo.setDeleteType(0);
+ acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId());
+ acctPo.setEmployeeId(recipient);
+ List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo);
+ encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
+
+ SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId());
+ if (salaryAcctRecordPO == null) {
+ throw new SalaryRunTimeException("薪资核算记录不存在!");
+ }
+ List