From 4755d51d2db026f3a4af8551439bc060a19e3a0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Tue, 3 Jun 2025 14:30:46 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?=
=?UTF-8?q?=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA?=
=?UTF-8?q?=E6=A0=B8=E7=AE=97=E8=AE=B0=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=E3=80=82=202=E3=80=81=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203?=
=?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=20=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97=EF=BC=9A=201=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA=E6=A0=B8=E7=AE=97=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97=E3=80=82=202=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203=E3=80=81=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97=20=E5=B7=A5?=
=?UTF-8?q?=E8=B5=84=E5=8D=95=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F?=
=?UTF-8?q?=E5=8F=91=E6=94=BE=202=E3=80=81=E6=89=B9=E9=87=8F=E6=92=A4?=
=?UTF-8?q?=E5=9B=9E=20=E7=94=B3=E6=8A=A5=E8=A1=A8=EF=BC=9A=201=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E7=94=B3=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salaryBill/param/SalarySendBatParam.java | 27 ++++++++++
.../salaryacct/param/SalaryAcctBatParam.java | 34 ++++++++++++
.../siaccount/param/AccountBatParam.java | 40 ++++++++++++++
.../param/TaxDeclarationBatParam.java | 54 +++++++++++++++++++
.../salary/service/SIAccountService.java | 8 +++
.../service/SalaryAcctRecordService.java | 8 +++
.../service/impl/SIAccountServiceImpl.java | 46 ++++++++++++++++
.../impl/SalaryAcctRecordServiceImpl.java | 38 ++++++++++++-
.../salary/web/SIAccountController.java | 32 +++++++++++
.../salary/web/SalaryAcctController.java | 37 +++++++++++++
.../salary/web/SalaryBillController.java | 23 ++++++++
.../salary/web/TaxDeclarationController.java | 10 ++++
.../wrapper/SalaryAcctRecordWrapper.java | 30 ++++++++++-
.../salary/wrapper/SalarySendWrapper.java | 24 +++++++++
.../salary/wrapper/TaxDeclarationWrapper.java | 17 ++++++
15 files changed, 426 insertions(+), 2 deletions(-)
create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java
create mode 100644 src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java
create mode 100644 src/com/engine/salary/entity/siaccount/param/AccountBatParam.java
create mode 100644 src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java
diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java
new file mode 100644
index 000000000..40f529cc5
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java
@@ -0,0 +1,27 @@
+package com.engine.salary.entity.salaryBill.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 工资单批量操作参数
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalarySendBatParam {
+
+// 工资单发放Id
+ private List salarySendIds;
+
+}
diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java
new file mode 100644
index 000000000..63dc4310a
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java
@@ -0,0 +1,34 @@
+package com.engine.salary.entity.salaryacct.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 批量操作参数
+ * Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalaryAcctBatParam {
+
+ //薪资所属月
+ private Date salaryMonth;
+ //薪资账套id
+ private List salarySobIds;
+ //备注
+ private String description;
+
+
+ private List salaryAcctRecordIds;
+}
diff --git a/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java b/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java
new file mode 100644
index 000000000..fa9de96fc
--- /dev/null
+++ b/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java
@@ -0,0 +1,40 @@
+package com.engine.salary.entity.siaccount.param;
+
+
+import com.engine.salary.util.valid.DataCheck;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AccountBatParam {
+
+ //账单月份")
+ //@NotNull
+ @DataCheck(require = true,message = "账单月份不能为空")
+ private String billMonth;
+
+ //备注")
+ //@Length(max = 60)
+ @DataCheck(max = 60,message = "备注长度不能超过60个字符")
+ private String remarks;
+
+
+ /**
+ * 个税扣缴义务人id
+ */
+ @DataCheck(require = true,message = "个税扣缴义务人不能为空")
+ private List paymentOrganizations;
+
+
+
+ private List ids;
+
+}
diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java
new file mode 100644
index 000000000..0168f9c89
--- /dev/null
+++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java
@@ -0,0 +1,54 @@
+package com.engine.salary.entity.taxdeclaration.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.YearMonth;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 生成个税申报表参数
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TaxDeclarationBatParam {
+
+ /**
+ * 个税申报id
+ */
+ private Long taxDeclarationId;
+
+ /**
+ * 薪资所属月
+ */
+ private YearMonth salaryMonth;
+
+ /**
+ * 个税扣缴义务人
+ */
+ private List taxAgentIds;
+
+ /**
+ * 备注
+ */
+ private String description;
+
+ private String salaryMonthStr;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date taxCycle;
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date salaryDate;
+}
diff --git a/src/com/engine/salary/service/SIAccountService.java b/src/com/engine/salary/service/SIAccountService.java
index bd95388a2..f37924c1d 100644
--- a/src/com/engine/salary/service/SIAccountService.java
+++ b/src/com/engine/salary/service/SIAccountService.java
@@ -320,5 +320,13 @@ public interface SIAccountService {
void cacheWelfareField(List welfareNames);
void cacheBalanceWelfareField(List welfareNames);
+
+ void batSave(AccountBatParam param);
+
+ void batDelete(AccountBatParam param);
+
+ void batFile(AccountBatParam param);
+
+ void batSocialSecurityBenefitsRecalculate(AccountBatParam batParam);
}
diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java
index fcf00580b..603e2a164 100644
--- a/src/com/engine/salary/service/SalaryAcctRecordService.java
+++ b/src/com/engine/salary/service/SalaryAcctRecordService.java
@@ -1,6 +1,7 @@
package com.engine.salary.service;
import com.engine.salary.common.LocalDateRange;
+import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
@@ -210,4 +211,11 @@ public interface SalaryAcctRecordService {
List listSome(SalaryAcctRecordPO po);
void updateDate(Long id, Date updateTime);
+
+ void batSave(SalaryAcctBatParam saveParam);
+
+ void batFile(SalaryAcctBatParam param);
+
+ void batReCalculate(SalaryAcctBatParam param);
+
}
diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
index 6c1a30028..a7039d1f5 100644
--- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
@@ -6802,6 +6802,52 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(welfareNames));
}
+ @Override
+ public void batSave(AccountBatParam accountBatParam) {
+ List paymentOrganizations = accountBatParam.getPaymentOrganizations();
+ for (Long paymentOrganization : paymentOrganizations) {
+ AccountParam param = AccountParam.builder()
+ .billMonth(accountBatParam.getBillMonth())
+ .paymentOrganization(paymentOrganization)
+ .remarks(accountBatParam.getRemarks())
+ .build();
+ save(param);
+ }
+ }
+
+ @Override
+ public void batDelete(AccountBatParam batParam) {
+ List paymentOrganizations = batParam.getPaymentOrganizations();
+ for (Long paymentOrganization : paymentOrganizations) {
+ AccountParam param = AccountParam.builder()
+ .billMonth(batParam.getBillMonth())
+ .paymentOrganization(paymentOrganization)
+ .build();
+ delete(param);
+ }
+ }
+
+ @Override
+ public void batFile(AccountBatParam batParam) {
+ List paymentOrganizations = batParam.getPaymentOrganizations();
+ for (Long paymentOrganization : paymentOrganizations) {
+ AccountParam param = AccountParam.builder()
+ .billMonth(batParam.getBillMonth())
+ .paymentOrganization(paymentOrganization)
+ .build();
+ file(param);
+ }
+ }
+
+ @Override
+ public void batSocialSecurityBenefitsRecalculate(AccountBatParam batParam) {
+ List ids = batParam.getIds();
+ for (Long id : ids) {
+ InsuranceAccountBatchPO param = InsuranceAccountBatchPO.builder().id(id).build();
+ socialSecurityBenefitsRecalculate(param);
+ }
+ }
+
public void accountOtherView(InsuranceAccountViewListDTO dto, List pos) {
int otherNum = 0;
BigDecimal otherPaySum = new BigDecimal("0");
diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
index 9958f8d27..2f79fd449 100644
--- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
@@ -4,11 +4,12 @@ import cn.hutool.core.collection.CollUtil;
import com.api.formmode.mybatis.util.SqlProxyHandle;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
+import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.config.SalaryElogConfig;
-import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.entity.salaryBill.po.SalarySendPO;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO;
+import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
@@ -40,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import weaver.hrm.User;
+import java.time.YearMonth;
import java.util.*;
import java.util.stream.Collectors;
@@ -845,4 +847,38 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
public void updateDate(Long id, Date updateTime) {
getSalaryAcctRecordMapper().updateDate(id, updateTime);
}
+
+ @Override
+ public void batSave(SalaryAcctBatParam saveParam) {
+
+ List salarySobIds = saveParam.getSalarySobIds();
+ YearMonth salaryMonth = SalaryDateUtil.localDate2YearMonth(saveParam.getSalaryMonth());
+ for (int i = 0; i < salarySobIds.size(); i++) {
+ Long salarySobId = salarySobIds.get(i);
+ SalaryAcctRecordSaveParam param = SalaryAcctRecordSaveParam.builder()
+ .salarySobId(salarySobId)
+ .salaryMonth(salaryMonth)
+ .description(saveParam.getDescription())
+ .build();
+ save(param);
+ }
+ }
+
+ @Override
+ public void batFile(SalaryAcctBatParam param) {
+ List salaryAcctRecordIds = param.getSalaryAcctRecordIds();
+ for (int i = 0; i < salaryAcctRecordIds.size(); i++) {
+ Long recordId = salaryAcctRecordIds.get(i);
+ file(recordId);
+ }
+ }
+
+ @Override
+ public void batReCalculate(SalaryAcctBatParam param) {
+ List salaryAcctRecordIds = param.getSalaryAcctRecordIds();
+ for (int i = 0; i < salaryAcctRecordIds.size(); i++) {
+ Long recordId = salaryAcctRecordIds.get(i);
+ reCalculate(recordId);
+ }
+ }
}
diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java
index 80f37a159..e44f3ba20 100644
--- a/src/com/engine/salary/web/SIAccountController.java
+++ b/src/com/engine/salary/web/SIAccountController.java
@@ -217,6 +217,38 @@ public class SIAccountController {
return new ResponseResult(user).run(getService(user)::save, param);
}
+ @POST
+ @Path("/batSave")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getService(user)::batSave, param);
+ }
+
+ @POST
+ @Path("/batDelete")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batDelete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getService(user)::batDelete, param);
+ }
+
+ @POST
+ @Path("/batFile")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batFile(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getService(user)::batFile, param);
+ }
+
+ @POST
+ @Path("/batSocialSecurityBenefitsRecalculate")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batSocialSecurityBenefitsRecalculate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody AccountBatParam batParam ){
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getService(user)::batSocialSecurityBenefitsRecalculate,batParam);
+ }
+
/**
* 正常缴纳页核算
diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java
index a196d53ef..57483fd40 100644
--- a/src/com/engine/salary/web/SalaryAcctController.java
+++ b/src/com/engine/salary/web/SalaryAcctController.java
@@ -141,6 +141,43 @@ public class SalaryAcctController {
return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
}
+ //薪资核算
+ @POST
+ @Path("/batAccounting")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batAccounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batCalculate, param);
+ }
+
+ //保存薪资核算的基本信息
+ @POST
+ @Path("/basic/batSave")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batSave, param);
+ }
+
+
+ //归档薪资核算记录
+ @POST
+ @Path("/batFile")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batFile(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batFile, param);
+ }
+
+ //重新核算
+ @POST
+ @Path("/batReAccounting")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batReAccounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batReCalculate, param);
+ }
+
//判断是否存在合并计税
@GET
@Path("/hasConsolidatedTax")
diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java
index 64437a579..ab505d1ce 100644
--- a/src/com/engine/salary/web/SalaryBillController.java
+++ b/src/com/engine/salary/web/SalaryBillController.java
@@ -480,6 +480,29 @@ public class SalaryBillController {
return new ResponseResult>(user).run(getSalarySendWrapper(user)::withdraw, queryParam);
}
+ @POST
+ @Path("/send/batGrant")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batGrant(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySendBatParam queryParam) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult>(user).run(getSalarySendWrapper(user)::batGrant, queryParam);
+ }
+
+ /**
+ * 工资单撤回
+ *
+ * @param queryParam
+ * @return
+ */
+ @POST
+ @Path("/send/batWithdraw")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batWithdraw(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySendBatParam queryParam) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult>(user).run(getSalarySendWrapper(user)::batWithdraw, queryParam);
+ }
+
+
/**
* 工资单发放详情列表的高级搜索
*
diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java
index 1c65fd7a2..e6205eaaa 100644
--- a/src/com/engine/salary/web/TaxDeclarationController.java
+++ b/src/com/engine/salary/web/TaxDeclarationController.java
@@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO;
+import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationBatParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
@@ -99,6 +100,15 @@ public class TaxDeclarationController {
return new ResponseResult(user).run(getTaxDeclarationWrapper(user)::save, param);
}
+ @POST
+ @Path("/batSave")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationBatParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr()));
+ return new ResponseResult(user).run(getTaxDeclarationWrapper(user)::batSave, param);
+ }
+
//个税申报表详情列表
@POST
@Path("/detail/list")
diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
index 7e352ce91..481cf0e1f 100644
--- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
@@ -10,12 +10,13 @@ import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordFormDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordListDTO;
+import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
+import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctSobConfigPO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
-import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO;
import com.engine.salary.entity.salarysob.po.*;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
@@ -55,6 +56,9 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {
return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user);
}
+ private SalaryAcctResultWrapper getSalaryAcctResultWrapper(User user) {
+ return ServiceUtil.getService(SalaryAcctResultWrapper.class, user);
+ }
private SalarySobService getSalarySobService(User user) {
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
@@ -396,4 +400,28 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
public void updateSobConfig(Long id) {
getSalaryAcctSobConfigService(user).updateBySalaryAcctRecordId(id);
}
+
+
+ public void batSave(SalaryAcctBatParam param) {
+ getSalaryAcctRecordService(user).batSave(param);
+ }
+
+
+ public void batFile(SalaryAcctBatParam param) {
+ getSalaryAcctRecordService(user).batFile(param);
+ }
+
+ public void batReCalculate(SalaryAcctBatParam param) {
+ getSalaryAcctRecordService(user).batReCalculate(param);
+
+ }
+
+ public void batCalculate(SalaryAcctBatParam param) {
+ List salaryAcctRecordIds = param.getSalaryAcctRecordIds();
+ for (int i = 0; i < salaryAcctRecordIds.size(); i++) {
+ Long recordId = salaryAcctRecordIds.get(i);
+ SalaryAcctCalculateParam calculateParam = SalaryAcctCalculateParam.builder().salaryAcctRecordId(recordId).build();
+ getSalaryAcctResultWrapper(user).calculate(calculateParam);
+ }
+ }
}
diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java
index 8bbba561c..1772ba8b9 100644
--- a/src/com/engine/salary/wrapper/SalarySendWrapper.java
+++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java
@@ -751,4 +751,28 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy
public String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam) {
return getSalaryBillService(user).genPdfBeforeExport(salaryExportPdfParam);
}
+
+
+ public void batGrant(SalarySendBatParam param) {
+ List salarySendIds = param.getSalarySendIds();
+
+ for (int i = 0; i < salarySendIds.size(); i++) {
+ Long sendId = salarySendIds.get(i);
+ SalarySendGrantParam grantParam = SalarySendGrantParam.builder()
+ .salarySendId(sendId)
+ .build();
+ grant(grantParam);
+ }
+ }
+ public void batWithdraw(SalarySendBatParam param) {
+ List salarySendIds = param.getSalarySendIds();
+
+ for (int i = 0; i < salarySendIds.size(); i++) {
+ Long sendId = salarySendIds.get(i);
+ SalarySendWithdrawParam grantParam = SalarySendWithdrawParam.builder()
+ .salarySendId(sendId)
+ .build();
+ withdraw(grantParam);
+ }
+ }
}
diff --git a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java
index 38670737a..0bfd23343 100644
--- a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java
+++ b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java
@@ -9,6 +9,7 @@ import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationBO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO;
+import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationBatParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
@@ -158,4 +159,20 @@ public class TaxDeclarationWrapper extends Service {
public void withDrawTaxDeclaration(Long taxDeclarationId) {
getTaxDeclarationService(user).withDrawTaxDeclaration(taxDeclarationId);
}
+
+ public void batSave(TaxDeclarationBatParam param) {
+ List taxAgentIds = param.getTaxAgentIds();
+ for (int i = 0; i < taxAgentIds.size(); i++) {
+ Long taxAgentId = taxAgentIds.get(i);
+ TaxDeclarationSaveParam saveParam = TaxDeclarationSaveParam.builder()
+ .salaryMonth(param.getSalaryMonth())
+ .taxAgentId(taxAgentId)
+ .description(param.getDescription())
+ .taxCycle(param.getTaxCycle())
+ .salaryDate(param.getSalaryDate())
+ .build();
+ save(saveParam);
+ }
+
+ }
}
From 9e6ab0c15546a192a5d5f2ae3925e63e28253d36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Wed, 4 Jun 2025 13:23:29 +0800
Subject: [PATCH 2/6] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?=
=?UTF-8?q?=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA?=
=?UTF-8?q?=E6=A0=B8=E7=AE=97=E8=AE=B0=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=E3=80=82=202=E3=80=81=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203?=
=?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=20=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97=EF=BC=9A=201=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA=E6=A0=B8=E7=AE=97=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97=E3=80=82=202=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203=E3=80=81=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97=20=E5=B7=A5?=
=?UTF-8?q?=E8=B5=84=E5=8D=95=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F?=
=?UTF-8?q?=E5=8F=91=E6=94=BE=202=E3=80=81=E6=89=B9=E9=87=8F=E6=92=A4?=
=?UTF-8?q?=E5=9B=9E=20=E7=94=B3=E6=8A=A5=E8=A1=A8=EF=BC=9A=201=E3=80=81?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E7=94=B3=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/SIAccountServiceImpl.java | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
index a7039d1f5..5eb2e1989 100644
--- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
@@ -6817,11 +6817,12 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
@Override
public void batDelete(AccountBatParam batParam) {
- List paymentOrganizations = batParam.getPaymentOrganizations();
- for (Long paymentOrganization : paymentOrganizations) {
+ List ids = batParam.getIds();
+ for (Long id : ids) {
+ InsuranceAccountBatchPO po = getInsuranceAccountBatchMapper().getById(id);
AccountParam param = AccountParam.builder()
- .billMonth(batParam.getBillMonth())
- .paymentOrganization(paymentOrganization)
+ .billMonth(po.getBillMonth())
+ .paymentOrganization(po.getPaymentOrganization())
.build();
delete(param);
}
@@ -6829,11 +6830,12 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
@Override
public void batFile(AccountBatParam batParam) {
- List paymentOrganizations = batParam.getPaymentOrganizations();
- for (Long paymentOrganization : paymentOrganizations) {
+ List ids = batParam.getIds();
+ for (Long id : ids) {
+ InsuranceAccountBatchPO po = getInsuranceAccountBatchMapper().getById(id);
AccountParam param = AccountParam.builder()
- .billMonth(batParam.getBillMonth())
- .paymentOrganization(paymentOrganization)
+ .billMonth(po.getBillMonth())
+ .paymentOrganization(po.getPaymentOrganization())
.build();
file(param);
}
From e9e3483c8b36d021b3daa8553bda605cd92c9378 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Wed, 4 Jun 2025 15:05:44 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?=
=?UTF-8?q?=E6=89=B9=E9=87=8F=E6=A0=B8=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
index 5eb2e1989..4725c5790 100644
--- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java
@@ -6809,6 +6809,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
AccountParam param = AccountParam.builder()
.billMonth(accountBatParam.getBillMonth())
.paymentOrganization(paymentOrganization)
+ .flag(true)
.remarks(accountBatParam.getRemarks())
.build();
save(param);
From d8d46cd93207f435a9eecc08a4dab9b534e42b88 Mon Sep 17 00:00:00 2001
From: Harryxzy
Date: Mon, 9 Jun 2025 10:42:23 +0800
Subject: [PATCH 4/6] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=E8=AE=B0=E5=BD=95=20=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA?=
=?UTF-8?q?=E5=B9=B6=E6=A0=B8=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salaryacct/bo/SalaryAcctRecordBO.java | 4 +-
.../dto/SalaryAcctRecordListDTO.java | 3 ++
.../param/SalaryAcctRecordBatchSaveParam.java | 37 +++++++++++++++++++
.../param/SalaryAcctRecordSaveParam.java | 2 +
.../salaryacct/po/SalaryAcctRecordPO.java | 5 +++
.../salaryacct/SalaryAcctRecordMapper.java | 2 +-
.../salaryacct/SalaryAcctRecordMapper.xml | 17 ++++++++-
.../service/SalaryAcctRecordService.java | 2 +-
.../impl/SalaryAcctRecordServiceImpl.java | 7 ++--
.../impl/SalaryAcctResultServiceImpl.java | 2 +-
.../salary/web/SalaryAcctController.java | 10 +++++
.../wrapper/SalaryAcctRecordWrapper.java | 22 +++++++++--
12 files changed, 101 insertions(+), 12 deletions(-)
create mode 100644 src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java
index ad98f4ad7..58888a156 100644
--- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java
+++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java
@@ -106,6 +106,7 @@ public class SalaryAcctRecordBO {
.updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime()))
.description(salaryAcctRecordPO.getDescription())
.approvalStatus(salaryAcctRecordPO.getApprovalStatus())
+ .runStatus(salaryAcctRecordPO.getRunStatus())
.operate(btnList)
.build();
}).collect(Collectors.toList());
@@ -122,7 +123,7 @@ public class SalaryAcctRecordBO {
*/
public static SalaryAcctRecordPO convert2PO(SalaryAcctRecordSaveParam saveParam,
SalarySobCycleDTO salarySobCycle,
- int acctTimes, Long employeeId) {
+ int acctTimes, Long employeeId, String runStatus) {
Date now = new Date();
return new SalaryAcctRecordPO()
.setSalaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1)))
@@ -136,6 +137,7 @@ public class SalaryAcctRecordBO {
.setCreator(employeeId)
.setCreateTime(now)
.setUpdateTime(now)
+ .setRunStatus(runStatus)
.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
}
diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java
index edc4d99dd..d60471eba 100644
--- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java
+++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java
@@ -76,6 +76,9 @@ public class SalaryAcctRecordListDTO {
@TableTitle(title = "审批状态", dataIndex = "approvalStatus", key = "approvalStatus")
private String approvalStatus;
+ @TableTitle(title = "执行状态", dataIndex = "runStatus", key = "runStatus")
+ private String runStatus;
+
@TableTitle(title = "操作", dataIndex = "operate", key = "operate")
private List operate;
}
diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
new file mode 100644
index 000000000..7f97ccd71
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
@@ -0,0 +1,37 @@
+package com.engine.salary.entity.salaryacct.param;
+
+import com.engine.salary.util.valid.DataCheck;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Harryxzy
+ * @ClassName SalaryAcctRecordBatchSaveParam
+ * @date 2025/06/09 9:45
+ * @description 薪资核算基本信息保存参数
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+//薪资核算基本信息保存参数
+public class SalaryAcctRecordBatchSaveParam {
+
+ //薪资所属月
+ @DataCheck(require = true, message = "薪资所属月格式错误")
+ private Date salaryMonth;
+
+ private String salaryMonthStr;
+
+ //薪资账套id
+ private List salarySobIds;
+
+ //备注
+ @DataCheck(max = 80, message = "备注不能超过80个字符")
+ private String description;
+}
diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java
index 62890c5da..de134d6af 100644
--- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java
+++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java
@@ -36,4 +36,6 @@ public class SalaryAcctRecordSaveParam {
//备注
@DataCheck(max = 80, message = "备注不能超过80个字符")
private String description;
+
+ private String runStatus;
}
diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java
index c2b8fd33c..cf816bf5d 100644
--- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java
+++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java
@@ -137,6 +137,11 @@ public class SalaryAcctRecordPO {
@Deprecated
private List lockSalaryItemIds;
+ /**
+ * 执行状态
+ */
+ private String runStatus;
+
//查询条件-------------------------------
Collection ids;
diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java
index 83110f1e6..cc59fd546 100644
--- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java
+++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java
@@ -80,5 +80,5 @@ public interface SalaryAcctRecordMapper {
List getBackCalcRecordByIds(@Param("collection") Set salaryAcctIds);
- void updateDate(@Param("id")Long id, @Param("updateTime")Date updateTime);
+ void updateDate(@Param("id")Long id, @Param("updateTime")Date updateTime, @Param("runStatus")String runStatus);
}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml
index 9da99248d..0147aa432 100644
--- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml
+++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml
@@ -16,6 +16,7 @@
+
@@ -38,6 +39,7 @@
, t.lock_salary_item_ids
, t.approval_status
, t.approval_id
+ , t.run_status
@@ -203,6 +205,9 @@
tenant_key,
+
+ run_status,
+
@@ -241,6 +246,9 @@
#{tenantKey},
+
+ #{runStatus},
+
@@ -289,6 +297,9 @@
tenant_key,
+
+ run_status,
+
@@ -327,6 +338,9 @@
#{tenantKey},
+
+ #{runStatus},
+
@@ -432,7 +446,8 @@
UPDATE hrsa_salary_acct_record
- SET update_time=#{updateTime}
+ SET update_time=#{updateTime},
+ run_status=#{runStatus}
WHERE delete_type = 0
AND id = #{id}
diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java
index 603e2a164..342b5a842 100644
--- a/src/com/engine/salary/service/SalaryAcctRecordService.java
+++ b/src/com/engine/salary/service/SalaryAcctRecordService.java
@@ -210,7 +210,7 @@ public interface SalaryAcctRecordService {
List listSome(SalaryAcctRecordPO po);
- void updateDate(Long id, Date updateTime);
+ void updateDate(Long id, Date updateTime, String runStatus);
void batSave(SalaryAcctBatParam saveParam);
diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
index 2f79fd449..66bb678c5 100644
--- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java
@@ -40,6 +40,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import weaver.hrm.User;
+import weaver.wechat.util.Utils;
import java.time.YearMonth;
import java.util.*;
@@ -310,7 +311,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
.count();
// 转换成po
- SalaryAcctRecordPO salaryAcctRecordPO = SalaryAcctRecordBO.convert2PO(saveParam, salarySobCycleDTO, (int) acctTimes, (long) user.getUID());
+ SalaryAcctRecordPO salaryAcctRecordPO = SalaryAcctRecordBO.convert2PO(saveParam, salarySobCycleDTO, (int) acctTimes, (long) user.getUID(), Utils.null2String(saveParam.getRunStatus()));
// 保存薪资核算记录
getSalaryAcctRecordMapper().insertIgnoreNull(salaryAcctRecordPO);
// 初始化薪资核算人员
@@ -844,8 +845,8 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
}
@Override
- public void updateDate(Long id, Date updateTime) {
- getSalaryAcctRecordMapper().updateDate(id, updateTime);
+ public void updateDate(Long id, Date updateTime, String runStatus) {
+ getSalaryAcctRecordMapper().updateDate(id, updateTime, runStatus);
}
@Override
diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
index 77a091911..6e3a358c3 100644
--- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
@@ -927,7 +927,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true);
//更新薪资核算记录最后操作日期
- getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(), new Date());
+ getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(), new Date(), "核算完成");
stopWatch.stop();
log.info(stopWatch.prettyPrint());
diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java
index 57483fd40..d173d1a0a 100644
--- a/src/com/engine/salary/web/SalaryAcctController.java
+++ b/src/com/engine/salary/web/SalaryAcctController.java
@@ -141,6 +141,16 @@ public class SalaryAcctController {
return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
}
+ //批量保存并核算
+ @POST
+ @Path("/batSaveAndAcct")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String batSaveAndAcct(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctRecordBatchSaveParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult>(user).run(getSalaryAcctRecordWrapper(user)::batSaveAndAcct, param);
+ }
+
+
//薪资核算
@POST
@Path("/batAccounting")
diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
index 481cf0e1f..ce5bd7f9f 100644
--- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
@@ -10,10 +10,7 @@ import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordFormDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordListDTO;
-import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
-import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam;
-import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
-import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
+import com.engine.salary.entity.salaryacct.param.*;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctSobConfigPO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
@@ -424,4 +421,21 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
getSalaryAcctResultWrapper(user).calculate(calculateParam);
}
}
+
+ public List batSaveAndAcct(SalaryAcctRecordBatchSaveParam saveParam) {
+ List ids = saveParam.getSalarySobIds().stream().map(salarySobId -> {
+ SalaryAcctRecordSaveParam build = SalaryAcctRecordSaveParam.builder()
+ .salarySobId(salarySobId)
+ .salaryMonth(SalaryDateUtil.localDate2YearMonth(saveParam.getSalaryMonth()))
+ .description(saveParam.getDescription())
+ .runStatus("核算中")
+ .build();
+ return save(build);
+ }).collect(Collectors.toList());
+
+ ids.forEach(salaryAcctRecordId -> {
+ getSalaryAcctResultWrapper(user).calculate(SalaryAcctCalculateParam.builder().salaryAcctRecordId(salaryAcctRecordId).build());
+ });
+ return ids;
+ }
}
From 5c2ede973628c438ce208935f19f15499596328b Mon Sep 17 00:00:00 2001
From: Harryxzy
Date: Tue, 10 Jun 2025 10:52:24 +0800
Subject: [PATCH 5/6] sql
---
resource/sqlupgrade/DM/sql2025010801039TEST.sql | 5 +++++
resource/sqlupgrade/GS/sql2025010801039TEST.sql | 5 +++++
resource/sqlupgrade/JC/sql2025010801039TEST.sql | 5 +++++
resource/sqlupgrade/Mysql/sql2025010801039TEST.sql | 1 +
resource/sqlupgrade/Oracle/sql2025010801039TEST.sql | 4 ++++
resource/sqlupgrade/PG/sql2025010801039TEST.sql | 1 +
resource/sqlupgrade/SQLServer/sql2025010801039TEST.sql | 2 ++
resource/sqlupgrade/ST/sql2025010801039TEST.sql | 5 +++++
8 files changed, 28 insertions(+)
create mode 100644 resource/sqlupgrade/DM/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/GS/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/JC/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/Mysql/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/Oracle/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/PG/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/SQLServer/sql2025010801039TEST.sql
create mode 100644 resource/sqlupgrade/ST/sql2025010801039TEST.sql
diff --git a/resource/sqlupgrade/DM/sql2025010801039TEST.sql b/resource/sqlupgrade/DM/sql2025010801039TEST.sql
new file mode 100644
index 000000000..0ff8ef894
--- /dev/null
+++ b/resource/sqlupgrade/DM/sql2025010801039TEST.sql
@@ -0,0 +1,5 @@
+ALTER TABLE hrsa_salary_acct_record ADD (
+ run_status varchar2(200) NULL
+);
+/
+
diff --git a/resource/sqlupgrade/GS/sql2025010801039TEST.sql b/resource/sqlupgrade/GS/sql2025010801039TEST.sql
new file mode 100644
index 000000000..0ff8ef894
--- /dev/null
+++ b/resource/sqlupgrade/GS/sql2025010801039TEST.sql
@@ -0,0 +1,5 @@
+ALTER TABLE hrsa_salary_acct_record ADD (
+ run_status varchar2(200) NULL
+);
+/
+
diff --git a/resource/sqlupgrade/JC/sql2025010801039TEST.sql b/resource/sqlupgrade/JC/sql2025010801039TEST.sql
new file mode 100644
index 000000000..0ff8ef894
--- /dev/null
+++ b/resource/sqlupgrade/JC/sql2025010801039TEST.sql
@@ -0,0 +1,5 @@
+ALTER TABLE hrsa_salary_acct_record ADD (
+ run_status varchar2(200) NULL
+);
+/
+
diff --git a/resource/sqlupgrade/Mysql/sql2025010801039TEST.sql b/resource/sqlupgrade/Mysql/sql2025010801039TEST.sql
new file mode 100644
index 000000000..655a1452b
--- /dev/null
+++ b/resource/sqlupgrade/Mysql/sql2025010801039TEST.sql
@@ -0,0 +1 @@
+ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) ;
\ No newline at end of file
diff --git a/resource/sqlupgrade/Oracle/sql2025010801039TEST.sql b/resource/sqlupgrade/Oracle/sql2025010801039TEST.sql
new file mode 100644
index 000000000..b5f15e56e
--- /dev/null
+++ b/resource/sqlupgrade/Oracle/sql2025010801039TEST.sql
@@ -0,0 +1,4 @@
+ALTER TABLE hrsa_salary_acct_record ADD (
+ run_status varchar2(200) NULL
+)
+/
\ No newline at end of file
diff --git a/resource/sqlupgrade/PG/sql2025010801039TEST.sql b/resource/sqlupgrade/PG/sql2025010801039TEST.sql
new file mode 100644
index 000000000..7870635b2
--- /dev/null
+++ b/resource/sqlupgrade/PG/sql2025010801039TEST.sql
@@ -0,0 +1 @@
+ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) NULL;
\ No newline at end of file
diff --git a/resource/sqlupgrade/SQLServer/sql2025010801039TEST.sql b/resource/sqlupgrade/SQLServer/sql2025010801039TEST.sql
new file mode 100644
index 000000000..4651f7cd3
--- /dev/null
+++ b/resource/sqlupgrade/SQLServer/sql2025010801039TEST.sql
@@ -0,0 +1,2 @@
+ALTER TABLE hrsa_salary_acct_record ADD run_status varchar(200) NULL
+GO
\ No newline at end of file
diff --git a/resource/sqlupgrade/ST/sql2025010801039TEST.sql b/resource/sqlupgrade/ST/sql2025010801039TEST.sql
new file mode 100644
index 000000000..0ff8ef894
--- /dev/null
+++ b/resource/sqlupgrade/ST/sql2025010801039TEST.sql
@@ -0,0 +1,5 @@
+ALTER TABLE hrsa_salary_acct_record ADD (
+ run_status varchar2(200) NULL
+);
+/
+
From 0bd518f6e7a54853449027b629e3cef430ed2aa6 Mon Sep 17 00:00:00 2001
From: Harryxzy
Date: Tue, 10 Jun 2025 10:59:25 +0800
Subject: [PATCH 6/6] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=A0=B8=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salaryacct/param/SalaryAcctRecordBatchSaveParam.java | 2 +-
src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
index 7f97ccd71..aad8d394b 100644
--- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
+++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java
@@ -29,7 +29,7 @@ public class SalaryAcctRecordBatchSaveParam {
private String salaryMonthStr;
//薪资账套id
- private List salarySobIds;
+ private List salarySobIds;
//备注
@DataCheck(max = 80, message = "备注不能超过80个字符")
diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
index ce5bd7f9f..876bf0317 100644
--- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java
@@ -423,7 +423,8 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
}
public List batSaveAndAcct(SalaryAcctRecordBatchSaveParam saveParam) {
- List ids = saveParam.getSalarySobIds().stream().map(salarySobId -> {
+ List ids = saveParam.getSalarySobIds().stream().filter(NumberUtils::isCreatable)
+ .map(Long::valueOf).map(salarySobId -> {
SalaryAcctRecordSaveParam build = SalaryAcctRecordSaveParam.builder()
.salarySobId(salarySobId)
.salaryMonth(SalaryDateUtil.localDate2YearMonth(saveParam.getSalaryMonth()))