diff --git a/resource/WEB-INF/lib/hrmelog.jar b/resource/WEB-INF/lib/hrmelog.jar
index 7589cfeae..ba4091f61 100644
Binary files a/resource/WEB-INF/lib/hrmelog.jar and b/resource/WEB-INF/lib/hrmelog.jar differ
diff --git a/resource/sqlupgrade/DM/sql202507110103.sql b/resource/sqlupgrade/DM/sql202507110103.sql
new file mode 100644
index 000000000..a942c94e6
--- /dev/null
+++ b/resource/sqlupgrade/DM/sql202507110103.sql
@@ -0,0 +1,3 @@
+alter table hrsa_tax_payment_request add report_type number(11) null;
+/
+
diff --git a/resource/sqlupgrade/GS/sql202507110103.sql b/resource/sqlupgrade/GS/sql202507110103.sql
new file mode 100644
index 000000000..a942c94e6
--- /dev/null
+++ b/resource/sqlupgrade/GS/sql202507110103.sql
@@ -0,0 +1,3 @@
+alter table hrsa_tax_payment_request add report_type number(11) null;
+/
+
diff --git a/resource/sqlupgrade/JC/sql202507110103.sql b/resource/sqlupgrade/JC/sql202507110103.sql
new file mode 100644
index 000000000..a942c94e6
--- /dev/null
+++ b/resource/sqlupgrade/JC/sql202507110103.sql
@@ -0,0 +1,3 @@
+alter table hrsa_tax_payment_request add report_type number(11) null;
+/
+
diff --git a/resource/sqlupgrade/Mysql/sql202507110103.sql b/resource/sqlupgrade/Mysql/sql202507110103.sql
new file mode 100644
index 000000000..ab9b6cb2e
--- /dev/null
+++ b/resource/sqlupgrade/Mysql/sql202507110103.sql
@@ -0,0 +1 @@
+ALTER TABLE hrsa_tax_payment_request ADD COLUMN report_type int NULL;
\ No newline at end of file
diff --git a/resource/sqlupgrade/Oracle/sql202507110103.sql b/resource/sqlupgrade/Oracle/sql202507110103.sql
new file mode 100644
index 000000000..40452d2a6
--- /dev/null
+++ b/resource/sqlupgrade/Oracle/sql202507110103.sql
@@ -0,0 +1,2 @@
+alter table hrsa_tax_payment_request add report_type number(11) null
+/
\ No newline at end of file
diff --git a/resource/sqlupgrade/PG/sql202507110103.sql b/resource/sqlupgrade/PG/sql202507110103.sql
new file mode 100644
index 000000000..b59e15941
--- /dev/null
+++ b/resource/sqlupgrade/PG/sql202507110103.sql
@@ -0,0 +1 @@
+ALTER TABLE hrsa_tax_payment_request ADD COLUMN report_type int ;
\ No newline at end of file
diff --git a/resource/sqlupgrade/SQLServer/sql202507110103.sql b/resource/sqlupgrade/SQLServer/sql202507110103.sql
new file mode 100644
index 000000000..19d102aa7
--- /dev/null
+++ b/resource/sqlupgrade/SQLServer/sql202507110103.sql
@@ -0,0 +1,2 @@
+alter table hrsa_tax_payment_request add report_type int null
+go
\ No newline at end of file
diff --git a/resource/sqlupgrade/ST/sql202507110103.sql b/resource/sqlupgrade/ST/sql202507110103.sql
new file mode 100644
index 000000000..a942c94e6
--- /dev/null
+++ b/resource/sqlupgrade/ST/sql202507110103.sql
@@ -0,0 +1,3 @@
+alter table hrsa_tax_payment_request add report_type number(11) null;
+/
+
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/salarysob/param/SalarySobQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java
index d0555321d..fc0094ba5 100644
--- a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java
+++ b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java
@@ -28,4 +28,6 @@ public class SalarySobQueryParam extends BaseQueryParam {
* 数据过滤级别
*/
private AuthFilterTypeEnum filterType;
+
+ private boolean isShare;
}
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/taxagent/param/TaxAgentQueryParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java
index 410b0b2b4..1ac46a384 100644
--- a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java
+++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java
@@ -26,4 +26,6 @@ public class TaxAgentQueryParam extends BaseQueryParam {
//个税扣缴义务人名称
private String name;
+
+ private boolean isShare;
}
diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
index 5bcad824f..284b5a010 100644
--- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
+++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
@@ -9,6 +9,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
import com.engine.salary.enums.datacollection.TaxFreeTypeEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
+import com.engine.salary.enums.salarysob.DeclareReportTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
@@ -43,6 +44,10 @@ public class TaxDeclarationRequest {
Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map> taxDeclarationValueMap = SalaryEntityUtil.group2Map(taxDeclarationValues, TaxDeclarationValuePO::getTaxDeclarationId);
+ taxDeclarations = taxDeclarations.stream()
+ .filter(taxDeclaration -> IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()) != null
+ && IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()).getReportType()== DeclareReportTypeEnum.COMPREHENSIVE_INCOME)
+ .collect(Collectors.toList());
for (TaxDeclarationPO taxDeclaration : taxDeclarations) {
List values = taxDeclarationValueMap.get(taxDeclaration.getId());
for (TaxDeclarationValuePO taxDeclarationValue : values) {
@@ -338,6 +343,10 @@ public class TaxDeclarationRequest {
Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map> taxDeclarationValueMap = SalaryEntityUtil.group2Map(taxDeclarationValues, TaxDeclarationValuePO::getTaxDeclarationId);
+ taxDeclarations = taxDeclarations.stream()
+ .filter(taxDeclaration -> IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()) != null
+ && IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()).getReportType()== DeclareReportTypeEnum.CLASSIFIED_INCOME)
+ .collect(Collectors.toList());
for (TaxDeclarationPO taxDeclaration : taxDeclarations) {
List values = taxDeclarationValueMap.get(taxDeclaration.getId());
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory());
@@ -380,6 +389,10 @@ public class TaxDeclarationRequest {
Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map> taxDeclarationValueMap = SalaryEntityUtil.group2Map(taxDeclarationValues, TaxDeclarationValuePO::getTaxDeclarationId);
+ taxDeclarations = taxDeclarations.stream()
+ .filter(taxDeclaration -> IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()) != null
+ && IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()).getReportType()== DeclareReportTypeEnum.NONRESIDENT_INCOME)
+ .collect(Collectors.toList());
for (TaxDeclarationPO taxDeclaration : taxDeclarations) {
List values = taxDeclarationValueMap.get(taxDeclaration.getId());
for (TaxDeclarationValuePO taxDeclarationValue : values) {
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..0b309e9c4
--- /dev/null
+++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java
@@ -0,0 +1,53 @@
+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.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 Date 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/entity/taxpayment/po/TaxPaymentRequestPO.java b/src/com/engine/salary/entity/taxpayment/po/TaxPaymentRequestPO.java
index 34141f5a2..55e0c69c5 100644
--- a/src/com/engine/salary/entity/taxpayment/po/TaxPaymentRequestPO.java
+++ b/src/com/engine/salary/entity/taxpayment/po/TaxPaymentRequestPO.java
@@ -73,6 +73,8 @@ public class TaxPaymentRequestPO implements Serializable {
//是否已获取反馈")
private Integer feedback;
+ private Integer reportType;
+
/**
* 租户key
*/
diff --git a/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.java b/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.java
index 6ec65e30f..d33063ed7 100644
--- a/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.java
+++ b/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.java
@@ -79,8 +79,6 @@ public interface TaxPaymentRequestMapper {
void updateFeedbackByRequestTypeTaxAgentIdTaxYearMonth(TaxPaymentRequestPO build);
- void updateFeedbackByTaxDeclareRecordId(TaxPaymentRequestPO build);
-
TaxPaymentRequestPO getOne(TaxPaymentRequestPO build);
}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.xml b/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.xml
index d1ca5dee2..6d84c59b8 100644
--- a/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.xml
+++ b/src/com/engine/salary/mapper/taxpayment/TaxPaymentRequestMapper.xml
@@ -14,6 +14,7 @@
+
@@ -32,6 +33,7 @@
, t.tax_year_month
, t.tenant_key
, t.update_time
+ , t.report_type
@@ -93,6 +95,9 @@
AND update_time = #{updateTime}
+
+ AND report_type = #{reportType}
+
AND id IN
@@ -142,7 +147,10 @@
tenant_key,
- update_time
+ update_time,
+
+
+ report_type
@@ -180,7 +188,10 @@
#{tenantKey},
- #{updateTime}
+ #{updateTime},
+
+
+ #{reportType}
@@ -201,7 +212,8 @@
tax_declare_record_id,
tax_year_month,
tenant_key,
- update_time
+ update_time,
+ report_type
)
VALUES
(
@@ -217,7 +229,8 @@
#{item.taxDeclareRecordId},
#{item.taxYearMonth},
#{item.tenantKey},
- #{item.updateTime}
+ #{item.updateTime},
+ #{item.reportType}
)
@@ -236,7 +249,8 @@
tax_declare_record_id,
tax_year_month,
tenant_key,
- update_time
+ update_time,
+ report_type
)
@@ -252,7 +266,8 @@
#{item.taxDeclareRecordId,jdbcType=DOUBLE},
#{item.taxYearMonth,jdbcType=DATE},
#{item.tenantKey,jdbcType=VARCHAR},
- #{item.updateTime,jdbcType=DATE}
+ #{item.updateTime,jdbcType=DATE},
+ #{item.reportType,jdbcType=INTEGER}
from dual
@@ -272,7 +287,8 @@
tax_declare_record_id,
tax_year_month,
tenant_key,
- update_time
+ update_time,
+ report_type
)
VALUES
(
@@ -287,7 +303,8 @@
#{item.taxDeclareRecordId},
#{item.taxYearMonth},
#{item.tenantKey},
- #{item.updateTime}
+ #{item.updateTime},
+ #{item.reportType}
)
@@ -307,6 +324,7 @@
tax_year_month=#{taxYearMonth},
tenant_key=#{tenantKey},
update_time=#{updateTime},
+ report_type=#{reportType},
WHERE id = #{id} AND delete_type = 0
@@ -349,6 +367,9 @@
update_time=#{updateTime},
+
+ report_type=#{reportType},
+
WHERE id = #{id} AND delete_type = 0
@@ -385,17 +406,9 @@
AND request_type=#{requestType}
AND tax_agent_id=#{taxAgentId}
AND tax_year_month=#{taxYearMonth}
+ AND report_type=#{reportType}
-
- UPDATE hrsa_tax_payment_request
-
- feedback=#{feedback}
-
- WHERE delete_type = 0
- AND tax_declare_record_id=#{taxDeclareRecordId}
-
@@ -407,6 +420,7 @@
AND request_type = #{requestType}
AND tax_agent_id = #{taxAgentId}
AND tax_year_month = #{taxYearMonth}
+ AND report_type = #{reportType}
\ No newline at end of file
diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
index 7d0d48d53..d92d62957 100644
--- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
+++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
@@ -303,6 +303,7 @@ public class SalaryStatisticsReportWrapper extends Service {
// 如果是被分享的报表,校验分享权限,通过后将user赋值为报表创建人
User creator = new User();
creator.setUid(po.getCreator().intValue());
+ creator.setLogintype("1");
user = creator;
} else {
// 判断报表是否是登陆人创建的,或薪酬总管理员
diff --git a/src/com/engine/salary/service/SIAccountService.java b/src/com/engine/salary/service/SIAccountService.java
index 55a578556..e299c15f0 100644
--- a/src/com/engine/salary/service/SIAccountService.java
+++ b/src/com/engine/salary/service/SIAccountService.java
@@ -324,5 +324,13 @@ public interface SIAccountService {
void deleteSocialAcctEmp(SaveCommonAccountParam param);
String addSocialAcctEmp(SaveCommonAccountParam param);
+
+ 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 8e203bf30..28c838536 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;
@@ -227,4 +228,11 @@ public interface SalaryAcctRecordService {
*/
List listBySalaryAcctRecordIds(Collection salaryAcctRecordIds);
+
+ void batSave(SalaryAcctBatParam saveParam);
+
+ void batFile(SalaryAcctBatParam param);
+
+ void batReCalculate(SalaryAcctBatParam param);
+
}
diff --git a/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java b/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java
index 25078bcf0..0881fd6cf 100644
--- a/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java
+++ b/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java
@@ -11,6 +11,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO;
import com.engine.salary.entity.taxagent.response.SzyhResponseHead;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
+import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO;
import com.engine.salary.entity.taxpayment.dto.TaxAmountFormDTO;
import com.engine.salary.entity.taxpayment.dto.TaxFeedbackResultDTO;
import com.engine.salary.entity.taxpayment.dto.TaxWithheldVoucherResultDTO;
@@ -34,7 +35,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import weaver.hrm.User;
-import java.math.BigDecimal;
import java.util.*;
/**
@@ -54,6 +54,7 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
protected TaxDeclareStatusService getTaxDeclareStatusService(User user) {
return ServiceUtil.getService(TaxDeclareStatusServiceImpl.class, user);
}
+
protected TaxAgentService getTaxAgentService(User user) {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
@@ -172,6 +173,7 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
.requestType(param.getType())
.taxAgentId(param.getTaxAgentId())
.taxYearMonth(param.getTaxYearMonth())
+ .reportType(param.getReportType())
.build());
}
} else {
@@ -189,6 +191,7 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
.requestId(requestId)
.requestType(param.getType())
.feedback(SalaryOnOffEnum.OFF.getValue())
+ .reportType(param.getReportType())
.build();
getTaxPaymentRequestMapper().insertIgnoreNull(paymentRequestPO);
}
@@ -200,6 +203,7 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
.builder()
.taxAgentId(param.getTaxAgentId())
.taxYearMonth(param.getTaxYearMonth())
+ .reportType(param.getReportType())
.build());
if (Objects.isNull(param.getCheckFeedback()) || SalaryOnOffEnum.ON.getValue().equals(param.getCheckFeedback())) {
TaxPaymentRequestPO notFeedback = paymentRequests.stream()
@@ -226,6 +230,7 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
.requestType(getServiceType())
.taxAgentId(param.getTaxAgentId())
.taxYearMonth(param.getTaxYearMonth())
+ .reportType(param.getReportType())
.build());
SalaryAssert.notNull(paymentRequest, "请先点击[三方缴款]或[银行端凭证缴款]按钮发起缴款请求后,再点击[缴款反馈]按钮");
paymentRequest.setFeedback(SalaryOnOffEnum.ON.getValue());
@@ -256,10 +261,11 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
public TaxAmountFormDTO queryTaxAmount(TaxPaymentQueryParam param) {
TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId());
SalaryAssert.notNull(taxDeclareRecord, "个税申报记录不存在");
- if (!TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue().equals(taxDeclareRecord.getTaxDeclareStatus())) {
+ TaxDeclareStatusPO taxDeclareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(param.getTaxDeclareRecordId(), param.getReportType());
+ if (!TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue().equals(taxDeclareStatus.getTaxDeclareStatus())) {
throw new SalaryRunTimeException("当前申报状态不是[申报成功,未缴费],暂时无法获取");
}
- if (taxDeclareRecord.getTaxPayAmount() == null || taxDeclareRecord.getPersonNum() == null) {
+ if (taxDeclareStatus.getTaxPayAmount() == null || taxDeclareStatus.getPersonNum() == null) {
throw new SalaryRunTimeException("未获取到应缴信息,请先进行个税在线申报");
}
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId());
@@ -267,32 +273,11 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa
return TaxAmountFormDTO.builder()
.taxAgent(taxAgentPO.getName())
- .amount(SalaryEntityUtil.thousandthConvert(taxDeclareRecord.getTaxPayAmount()))
- .personNum(taxDeclareRecord.getPersonNum().toString())
+ .amount(SalaryEntityUtil.thousandthConvert(taxDeclareStatus.getTaxPayAmount()))
+ .personNum(taxDeclareStatus.getPersonNum().toString())
.build();
}
- protected TaxDeclareRecordPO updateTaxDeclareRecord(TaxPaymentQueryParam param, BigDecimal totalPaid) {
- TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId());
- if (TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.getValue().equals(taxDeclareRecord.getTaxDeclareStatus())) {
- throw new SalaryRunTimeException("当前申报表状态为已缴款,无法更新状态");
- }
- BigDecimal taxPayAmount = SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPayAmount());
- BigDecimal taxPurePaidAmount = SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPurePaidAmount());
- if (SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPaidAmount()).equals(totalPaid)
- && taxPayAmount.compareTo(BigDecimal.ZERO) > 0) {
- throw new SalaryRunTimeException("请进行缴款后再刷新缴款状态");
- }
- taxDeclareRecord.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.getValue());
- taxDeclareRecord.setTaxPaidAmount(totalPaid.toString());
- taxDeclareRecord.setTaxPurePaidAmount(taxPurePaidAmount.add(taxPayAmount).toString());
- taxDeclareRecord.setTaxPayAmount(BigDecimal.ZERO.toString());
- taxDeclareRecord.setUpdateTime(new Date());
- getTaxDeclareRecordService(user).updateById(taxDeclareRecord);
- // 填充回去后续返回数据用
- taxDeclareRecord.setTaxPayAmount(taxPayAmount.toString());
- return taxDeclareRecord;
- }
@Override
public void cancelWithholdingVoucher(TaxDeclarationApiConfigPO apiConfig, TaxDeclareRecordPO taxDeclareRecord, Map requestParam) {
diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java
index 889d945cf..e4f04dc4d 100644
--- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java
+++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java
@@ -254,7 +254,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction
String imageId = Util.null2String(importParam.getImageId());
Validate.notBlank(imageId, "imageId为空");
// 获取所有个税扣缴义务人
- Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId);
+ // 获取所有个税扣缴义务人
+ TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
+ param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA);
+ Collection taxAgentList = getTaxAgentService(user).listAuth(param);
+ // Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId);
//个税扣缴义务人
String taxAgentId = Util.null2String(importParam.getTaxAgentId());
// 获取租户下所有的人员
@@ -356,17 +360,17 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction
errorData.add(errorMessageMap);
errorSum += 1;
} else {
- Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst();
+ Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst();
if (optionalTemp.isPresent()) {
- if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) {
+ if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getId().equals(Long.valueOf(taxAgentId))) {
//个税扣缴义务人与导入时选择的不一致
Map errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", rowIndex + "个税扣缴义务人与导入时选择的不一致");
errorData.add(errorMessageMap);
errorSum += 1;
} else {
- addUpDeduction.setTaxAgentId(optionalTemp.get().getTaxAgentId());
- taxAgentEmployees = optionalTemp.get().getEmployeeList();
+ addUpDeduction.setTaxAgentId(optionalTemp.get().getId());
+ // taxAgentEmployees = optionalTemp.get().getEmployeeList();
}
} else {
//个税扣缴义务人不存在
diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java
index 5b173edba..a580d2bce 100644
--- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java
+++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java
@@ -308,7 +308,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa
.collect(Collectors.toList());
effectiveFields.forEach(attendQuoteField -> {
- header.add(attendQuoteField.getFieldName());
+ header.add(Util.formatMultiLang(attendQuoteField.getFieldName(), String.valueOf(user.getLanguage())));
}
);
}
@@ -771,7 +771,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa
header.add(SalaryI18nUtil.getI18nLabel(86317, "证件号码"));
// 动态列
for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) {
- header.add(attendQuoteField.getFieldName());
+ header.add(Util.formatMultiLang(attendQuoteField.getFieldName(), String.valueOf(user.getLanguage())));
}
List> rows = new ArrayList<>();
rows.add(header);
diff --git a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java
index 2448254f9..9ddab6625 100644
--- a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java
+++ b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java
@@ -27,6 +27,7 @@ import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
+import weaver.general.Util;
import weaver.hrm.User;
import java.util.*;
@@ -292,7 +293,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF
Map column = columnsOptional.get();
updates.add(AttendQuoteFieldPO.builder()
.code(column.get("code"))
- .fieldName(column.get("name"))
+ .fieldName(Util.formatMultiLang(column.get("name"), String.valueOf(user.getLanguage())))
.updateTime(now)
.build());
}
@@ -312,7 +313,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF
Optional