Merge branch 'custom/钱智' of http://221.226.25.34:3003/qt/weaver-hrm-salary into custom/钱智

This commit is contained in:
dxfeng 2025-12-18 09:40:49 +08:00
commit 6a8a2b73d4
143 changed files with 4033 additions and 492 deletions

Binary file not shown.

View File

@ -1,5 +1,5 @@
log=false
defaultCloseNonStandard149=true
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
version=3.0.2.2504.04
version=3.0.6.2510.01.ts
openFormulaForcedEditing=false

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_salary_acct_record ADD (
run_status varchar2(200) NULL
);
/

View File

@ -0,0 +1,3 @@
alter table hrsa_tax_payment_request add report_type number(11) null;
/

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_salary_acct_record ADD (
run_status varchar2(200) NULL
);
/

View File

@ -0,0 +1,3 @@
alter table hrsa_tax_payment_request add report_type number(11) null;
/

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_salary_acct_record ADD (
run_status varchar2(200) NULL
);
/

View File

@ -0,0 +1,3 @@
alter table hrsa_tax_payment_request add report_type number(11) null;
/

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) ;

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_tax_payment_request ADD COLUMN report_type int NULL;

View File

@ -0,0 +1,15 @@
CREATE TABLE hrsa_employee_declare_opt
(
id bigint(0) NOT NULL,
create_time datetime(0),
update_time datetime(0),
creator bigint(0),
delete_type int(0),
tenant_key varchar(10),
tax_agent_id bigint(0),
status varchar(255),
last_operate_time datetime(0),
last_operate varchar(255),
tax_cycle datetime(0),
PRIMARY KEY (id) USING BTREE
);

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_salary_acct_record ADD COLUMN msg text;

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_bill_batch ADD COLUMN fc int(255) NULL;

View File

@ -0,0 +1,4 @@
ALTER TABLE hrsa_salary_acct_record ADD (
run_status varchar2(200) NULL
)
/

View File

@ -0,0 +1,2 @@
alter table hrsa_tax_payment_request add report_type number(11) null
/

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) NULL;

View File

@ -1,41 +1,42 @@
CREATE TABLE hrsa_hrm_snapshot (
ID bigint(0) NOT NULL,
CREATE TABLE hrsa_hrm_snapshot
(
ID bigint NOT NULL,
snapshot_time timestamp,
employee_id bigint(0),
employee_id bigint,
loginid varchar(100),
LASTNAME varchar(60),
SEX char(1),
BIRTHDAY char(10) ,
NATIONALITY int(0) ,
NATIONALITY int ,
MARITALSTATUS char(1) ,
TELEPHONE varchar(60),
MOBILE varchar(60) ,
MOBILECALL varchar(60) ,
EMAIL varchar(60),
LOCATIONID int(0),
LOCATIONID int,
WORKROOM varchar(60),
HOMEADDRESS varchar(100),
RESOURCETYPE char(1) ,
STARTDATE char(10) ,
ENDDATE char(10),
JOBTITLE int(0) ,
JOBTITLE int ,
JOBTITLENAME varchar(200) ,
JOBACTIVITYDESC varchar(200),
JOBLEVEL int(0) ,
SECLEVEL int(0) ,
DEPARTMENTID int(0) ,
JOBLEVEL int ,
SECLEVEL int ,
DEPARTMENTID int ,
DEPARTMENTNAME varchar(200) ,
SUBCOMPANYID1 int(0) ,
SUBCOMPANYID1 int ,
SUBCOMPANYNAME varchar(200) ,
COSTCENTERID int(0) ,
MANAGERID int(0) ,
ASSISTANTID int(0),
BANKID1 int(0) ,
COSTCENTERID int ,
MANAGERID int ,
ASSISTANTID int,
BANKID1 int ,
ACCOUNTID1 varchar(100) ,
LASTLOGINDATE char(10) ,
CERTIFICATENUM varchar(60) ,
NATIVEPLACE varchar(100) ,
EDUCATIONLEVEL int(0) ,
EDUCATIONLEVEL int ,
BEMEMBERDATE char(10) ,
BEPARTYDATE char(10) ,
WORKCODE varchar(60) ,
@ -44,8 +45,8 @@ CREATE TABLE hrsa_hrm_snapshot (
RESIDENTPLACE varchar(200) ,
POLICY varchar(30) ,
DEGREE varchar(30) ,
USEKIND int(0) ,
JOBCALL int(0) ,
USEKIND int ,
JOBCALL int ,
jobcallname varchar(200) ,
ACCUMFUNDACCOUNT varchar(30),
BIRTHPLACE varchar(60) ,
@ -54,14 +55,14 @@ CREATE TABLE hrsa_hrm_snapshot (
RESIDENTPOSTCODE varchar(60) ,
EXTPHONE varchar(50) ,
MANAGERSTR varchar(500),
STATUS int(0) ,
STATUS int ,
FAX varchar(60) ,
ISLABOUUNION char(1),
TEMPRESIDENTNUMBER varchar(60),
PROBATIONENDDATE char(10),
COUNTRYID int(0) ,
ACCOUNTTYPE int(0) ,
BELONGTO int(0) ,
COUNTRYID int ,
ACCOUNTTYPE int ,
BELONGTO int ,
ACCOUNTNAME varchar(200) ,
companystartdate varchar(10),
workstartdate varchar(10) ,

View File

@ -0,0 +1 @@
ALTER TABLE hrsa_tax_payment_request ADD COLUMN report_type int ;

View File

@ -0,0 +1,2 @@
ALTER TABLE hrsa_salary_acct_record ADD run_status varchar(200) NULL
GO

View File

@ -0,0 +1,2 @@
alter table hrsa_tax_payment_request add report_type int null
go

View File

@ -0,0 +1,2 @@
ALTER TABLE hrsa_salary_acct_record ADD msg text
GO

View File

@ -0,0 +1,2 @@
alter table hrsa_bill_batch add fc int
GO

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_salary_acct_record ADD (
run_status varchar2(200) NULL
);
/

View File

@ -0,0 +1,3 @@
alter table hrsa_tax_payment_request add report_type number(11) null;
/

View File

@ -0,0 +1,2 @@
actualWorkplaceField=field2
socialManagerRoleId=28

View File

@ -18,7 +18,8 @@ update hrsa_salary_archive set delete_type=3 where tax_agent_id=扣缴义务人
二、删除停薪员工档案
update hrsa_salary_archive set delete_type=3 where run_status in ('STOP_FROM_PENDING','STOP_FROM_SUSPEND')
update hrsa_salary_archive set delete_type=3 where delete_type=0 and run_status in ('STOP_FROM_PENDING','STOP_FROM_SUSPEND')
update hrsa_salary_archive_item set delete_type=3 where delete_type=0
二、删除停薪员工社保档案
update hrsa_insurance_base_info set delete_type=3 where run_status in ('4','5')
@ -28,10 +29,10 @@ update hrsa_insurance_base_info set delete_type=3 where run_status in ('4','5')
--删除社保福利档案
update hrsa_insurance_base_info set delete_type=3 WHERE employee_id = ? and payment_organization =?
update hrsa_social_archives set delete_type=3 WHERE employee_id = ? and payment_organization =?
update hrsa_fund_archives set delete_type=3 WHERE employee_id = ? and payment_organization =?
update hrsa_other_archives set delete_type=3 WHERE employee_id = ? and payment_organization =?
update hrsa_insurance_base_info set delete_type=3 WHERE delete_type=0 and employee_id = ? and payment_organization =?
update hrsa_social_archives set delete_type=3 WHERE delete_type=0 and employee_id = ? and payment_organization =?
update hrsa_fund_archives set delete_type=3 WHERE delete_type=0 and employee_id = ? and payment_organization =?
update hrsa_other_archives set delete_type=3 WHERE delete_type=0 and employee_id = ? and payment_organization =?
-- 删除薪资档案
update hrsa_salary_archive set delete_type=3 where employee_id = ? and tax_agent_id=?
@ -45,4 +46,13 @@ update hrsa_other_archives set delete_type=3;
update hrsa_tax_agent_emp set delete_type=3;
-- 删除核算记录
update hrsa_salary_acct_record set delete_type=3 where delete_type=0 and id= 核算记录id;
update hrsa_salary_acct_emp set delete_type=3 where delete_type=0 and salary_acct_record_id=核算记录id;
update hrsa_salary_acct_result set delete_type=3 where delete_type=0 and salary_acct_record_id = 核算记录id;
--删除工资单信息
update hrsa_salary_send set delete_type=3 where delete_type=0 and salary_accounting_id = 核算记录id;
update hrsa_salary_send_info set delete_type=3 where delete_type=0 and salary_acct_record_id = 核算记录id;

View File

@ -1,3 +1,5 @@
## 薪资档案生成不了
select id from hrsa_tax_agent_emp
where tax_agent_id =扣缴义务人id
and delete_type = 0
@ -6,5 +8,14 @@ and employee_id not in
where tax_agent_id =扣缴义务人id and delete_type = 0)
update hrsa_tax_agent_emp set delete_type = 3
where tax_agent_id=扣缴义务人id and delete_type = 0 and employee_id not in (select employee_id from hrsa_salary_archive where tax_agent_id =扣缴义务人id and delete_type = 0)
update hrsa_tax_agent_emp set delete_type = 3 where delete_type = 0
where tax_agent_id=扣缴义务人id and delete_type = 0 and employee_id not in (select employee_id from hrsa_salary_archive where tax_agent_id =扣缴义务人id and delete_type = 0)
## 考勤引用
drop sequence HRSA_ATTEND_QUOTE_ID
/
drop trigger HRSA_ATTEND_QUOTE_TRI
/

View File

@ -0,0 +1,5 @@
# ??????
bcylbx=1731899239050
# ????
dbbx=1731899212789

View File

@ -80,6 +80,8 @@ public class CheckEditSIArchiveAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, CheckEditSIArchiveAction.SalaryField::getSalaryName, CheckEditSIArchiveAction.SalaryField::getValue));
log.info("CheckEditSIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
//福利执行状态
String runStatus = list.stream().filter(f -> f.salaryName.equals("档案状态")).findFirst().map(CheckEditSIArchiveAction.SalaryField::getValue).orElse("1");

View File

@ -78,6 +78,7 @@ public class CheckEditSalaryAction implements Action {
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue));
log.info("CheckEditSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder()
.importDatas(importData)
.build();

View File

@ -98,7 +98,7 @@ public class CheckInitSalaryAction implements Action {
list.add(new SalaryField(processField, salaryName, value));
}
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue);
log.info("CheckInitSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
return doSalaryArchiveInit(requestInfo, importDataMap);
} catch (Exception e) {
log.error("定薪检查异常", e);

View File

@ -89,6 +89,7 @@ public class CheckStayAddToPaySIArchiveAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, CheckStayAddToPaySIArchiveAction.SalaryField::getSalaryName, CheckStayAddToPaySIArchiveAction.SalaryField::getValue);
log.info("CheckStayAddToPaySIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
String taxAgentName = importDataMap.getOrDefault("个税扣缴义务人", "").toString();
List<TaxAgentPO> taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName);
if(CollectionUtils.isEmpty(taxAgentPOS)){

View File

@ -88,6 +88,7 @@ public class CheckStayDelToStopSIArchiveAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, CheckStayDelToStopSIArchiveAction.SalaryField::getSalaryName, CheckStayDelToStopSIArchiveAction.SalaryField::getValue);
log.info("CheckStayDelToStopSIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
String taxAgentName = importDataMap.getOrDefault("个税扣缴义务人", "").toString();
List<TaxAgentPO> taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName);
if(CollectionUtils.isEmpty(taxAgentPOS)){

View File

@ -92,6 +92,7 @@ public class CheckStopSalaryAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, CheckStopSalaryAction.SalaryField::getSalaryName, CheckStopSalaryAction.SalaryField::getValue);
log.info("CheckStopSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
String taxAgentName = importDataMap.getOrDefault("个税扣缴义务人", "").toString();
List<TaxAgentPO> taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName);
if(CollectionUtils.isEmpty(taxAgentPOS)){

View File

@ -88,6 +88,7 @@ public class CopyToPaySIArchiveAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, CopyToPaySIArchiveAction.SalaryField::getSalaryName, CopyToPaySIArchiveAction.SalaryField::getValue));
log.info("CopyToPaySIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
//操作人
String uid = list.stream().filter(f -> f.salaryName.equals("操作人")).findFirst().map(CopyToPaySIArchiveAction.SalaryField::getValue).orElse("1");
//增员

View File

@ -79,6 +79,7 @@ public class EditSIArchiveAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, EditSIArchiveAction.SalaryField::getSalaryName, EditSIArchiveAction.SalaryField::getValue));
log.info("EditSIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
//福利执行状态
String runStatus = list.stream().filter(f -> f.salaryName.equals("档案状态")).findFirst().map(EditSIArchiveAction.SalaryField::getValue).orElse("1");

View File

@ -77,7 +77,7 @@ public class EditSalaryAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue));
log.info("EditSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder()
.importDatas(importData)
.build();

View File

@ -97,6 +97,7 @@ public class EditToPaySIArchiveAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, EditToPaySIArchiveAction.SalaryField::getSalaryName, EditToPaySIArchiveAction.SalaryField::getValue));
log.info("EditToPaySIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
//福利执行状态
String runStatus = EmployeeStatusEnum.STAY_ADD.getValue();

View File

@ -97,6 +97,7 @@ public class EditToStopSIArchiveAction implements Action {
}
List<Map<String, Object>> importData = new ArrayList<>();
importData.add(SalaryEntityUtil.convert2Map(list, EditToStopSIArchiveAction.SalaryField::getSalaryName, EditToStopSIArchiveAction.SalaryField::getValue));
log.info("EditToStopSIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importData);
//福利执行状态
String runStatus = EmployeeStatusEnum.PAYING.getValue();

View File

@ -100,7 +100,7 @@ public class InitSalaryAction implements Action {
}
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue);
log.info("InitSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
return doSalaryArchiveInit(requestInfo, importDataMap);
} catch (Exception e) {
log.error("定薪异常", e);

View File

@ -108,6 +108,7 @@ public class RehireAction implements Action {
list.add(new SalaryField(processField, salaryName, value));
}
Map<String, Object> salaryFieldMap = SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue);
log.info("RehireActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), salaryFieldMap);
String taxAgentName = salaryFieldMap.getOrDefault("个税扣缴义务人", "").toString();
String empIdStr = salaryFieldMap.getOrDefault("员工id", "").toString();
if (StringUtils.isBlank(taxAgentName) || StringUtils.isBlank(empIdStr)) {

View File

@ -93,6 +93,7 @@ public class StayAddToPaySIArchiveAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, StayAddToPaySIArchiveAction.SalaryField::getSalaryName, StayAddToPaySIArchiveAction.SalaryField::getValue);
log.info("StayAddToPaySIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
String taxAgentName = importDataMap.getOrDefault("个税扣缴义务人", "").toString();
List<TaxAgentPO> taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName);
if(CollectionUtils.isEmpty(taxAgentPOS)){

View File

@ -94,6 +94,7 @@ public class StayDelToStopSIArchiveAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, StayDelToStopSIArchiveAction.SalaryField::getSalaryName, StayDelToStopSIArchiveAction.SalaryField::getValue);
log.info("StayDelToStopSIArchiveActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
String taxAgentName = importDataMap.getOrDefault("个税扣缴义务人", "").toString();
List<TaxAgentPO> taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName);
if(CollectionUtils.isEmpty(taxAgentPOS)){

View File

@ -99,6 +99,7 @@ public class StopSalaryAction implements Action {
}
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, StopSalaryAction.SalaryField::getSalaryName, StopSalaryAction.SalaryField::getValue);
log.info("StopSalaryActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
//操作人
String uid = importDataMap.getOrDefault("操作人","1").toString();
User user = new User(Integer.parseInt(uid));

View File

@ -117,6 +117,7 @@ public class UpdateSISchemeDetailAction implements Action {
rs.beforFirst();
// 流程数据
Map<String, Object> importDataMap = SalaryEntityUtil.convert2Map(list, UpdateSISchemeDetailAction.SalaryField::getSalaryName, UpdateSISchemeDetailAction.SalaryField::getValue);
log.info("UpdateSISchemeDetailActiontableName {}workflowid{},流程参数:{}",tableName, requestInfo.getWorkflowid(), importDataMap);
//设置更新对象元素
String schemeId = importDataMap.getOrDefault("福利方案id", "").toString();
String schemeName = importDataMap.getOrDefault("福利方案名称", "").toString();

View File

@ -31,4 +31,6 @@ public class AttendQuoteQueryParam extends BaseQueryParam {
//薪资所属月
private List<String> salaryYearMonth;
private List<Date> salaryYearMonthDate;
private List<Long> taxAgentIds;
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.employeedeclare.bo;
import cn.hutool.core.date.DateUtil;
import com.api.formmode.page.util.Util;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
@ -27,6 +28,7 @@ import java.util.*;
public class EmployeeDeclareRefresh {
public static Result refresh(EmployeeDeclareRefreshDTO dto, Long employeeId) {
Date taxCycle = dto.getTaxCycle();
Result result = new Result();
// 本月已有的需要报送的人员
Set<Long> employeeIds = SalaryEntityUtil.properties(dto.getEmployeeDeclares(), EmployeeDeclarePO::getEmployeeId);
@ -43,10 +45,16 @@ public class EmployeeDeclareRefresh {
|| Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))) {
if (Objects.equals(employeeDeclare.getEmploymentStatus(), EmploymentStatusEnum.ABNORMAL.getValue())
|| Objects.equals(Util.null2String(employeeDeclare.getDismissDate()), Util.null2String(salaryArchive.getPayEndDate()))) {
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(salaryArchive.getPayEndDate());
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setUpdateTime(now);
Date payEndDate = salaryArchive.getPayEndDate();
payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1);
//过滤不在一个月且发薪日期在之后月份的
if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) {
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(payEndDate);
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setUpdateTime(now);
}
result.getEmployeeDeclares().add(employeeDeclare);
}
}
@ -76,10 +84,15 @@ public class EmployeeDeclareRefresh {
SalaryArchivePO salaryArchive = salaryArchiveMap.get(employeeDeclare.getEmployeeId());
if (salaryArchive != null && (Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())
|| Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))) {
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(salaryArchive.getPayEndDate());
employeeDeclare.setNewEmployeeInfo(1);
Date payEndDate = salaryArchive.getPayEndDate();
payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1);
//过滤不在一个月且发薪日期在之后月份的
if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) {
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(payEndDate);
employeeDeclare.setNewEmployeeInfo(1);
}
}
// if (salaryArchive != null && !Objects.equals(Util.null2String(employeeDeclare.getEmploymentType()), salaryArchive.getEmploymentType())) {
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
@ -141,11 +154,25 @@ public class EmployeeDeclareRefresh {
SalaryArchivePO salaryArchive = salaryArchiveMap.get(employeeDeclare.getEmployeeId());
if (salaryArchive != null) {
// employeeDeclare.setEmploymentType(Util.getIntValue(salaryArchive.getEmploymentType()));
employeeDeclare.setEmploymentDate(salaryArchive.getPayStartDate());
//钱智二开薪资档案时间作为受雇从业日期以及结束日期调整为以薪资档案时间往后延一个月作为雇从业日期以结束日期
Date payStartDate = salaryArchive.getPayStartDate();
payStartDate = SalaryDateUtil.plusMonths(payStartDate, 1);
//过滤不在一个月且发薪日期在之后月份的
if ((!DateUtil.isIn(payStartDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payStartDate.after(taxCycle)) {
continue;
}
employeeDeclare.setEmploymentDate(payStartDate);
if (Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())
|| Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) {
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(salaryArchive.getPayEndDate());
Date payEndDate = salaryArchive.getPayEndDate();
payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1);
//过滤不在一个月且发薪日期在之后月份的
if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) {
employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue());
employeeDeclare.setDismissDate(payEndDate);
}
}
}
employeeIds.add(employeeDeclare.getEmployeeId());

View File

@ -1,11 +1,14 @@
package com.engine.salary.entity.employeedeclare.dto;
import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.Set;
/**
@ -27,7 +30,28 @@ public class TaxAgentDeclareListDTO {
private Long id;
// 个税扣缴义务人
@TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
private String taxAgentName;
/**
* 最后操作功能
*/
@TableTitle(title = "最后操作功能", dataIndex = "lastOperate", key = "lastOperate")
private String lastOperate;
/**
* 最后操作时间
*/
@TableTitle(title = "最后操作时间", dataIndex = "lastOperateTime", key = "lastOperateTime")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date lastOperateTime;
/**
* 报送状态
*/
@TableTitle(title = "报送状态", dataIndex = "status", key = "status")
public String status;
Set<String> opts;
}

View File

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* 人员报送
@ -34,4 +35,10 @@ public class EmployeeDeclareParam extends BaseQueryParam {
*/
@DataCheck(require = true,message = "参数错误,税款所属期参数格式错误")
private Date taxCycle;
/**
* 批量报送个税扣缴义务人id集合
*/
private List<Long> taxAgentIds;
}

View File

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* 刷新报送人员
@ -25,12 +26,18 @@ public class EmployeeDeclareRefreshParam {
/**
* 个税扣缴义务人id
*/
@DataCheck(require = true,message = "参数错误个税扣缴义务人id不能为空")
@DataCheck(require = true, message = "参数错误个税扣缴义务人id不能为空")
private Long taxAgentId;
/**
* 税款所属期
*/
@DataCheck(require = true,message = "参数错误,税款所属期参数格式错误")
@DataCheck(require = true, message = "参数错误,税款所属期参数格式错误")
private Date taxCycle;
/**
* 批量操作个税扣缴义务人id集合
*/
private List<Long> taxAgentIds;
}

View File

@ -6,6 +6,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 人员报送个税扣缴义务人查询条件
* <p>Copyright: Copyright (c) 2023</p>
@ -22,4 +24,13 @@ public class TaxAgentDeclareListQueryParam extends BaseQueryParam {
// "个税扣缴义务人名称"
private String taxAgentName;
// 最后操作
private List<String> lastOperates;
/**
* 操作状态
*/
private List<String> statuses;
}

View File

@ -0,0 +1,101 @@
package com.engine.salary.entity.employeedeclare.po;
import com.engine.hrmelog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
/**
* 人员报送
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_employee_declare_opt
public class EmployeeDeclareOptPO {
/**
* ID
*/
@ElogTransform(name = "ID")
private Long id;
/**
* 个税扣缴义务人
*/
@ElogTransform(name = "个税扣缴义务人")
private Long taxAgentId;
/**
* 税款所属期
*/
@ElogTransform(name = "税款所属期")
private Date taxCycle;
/**
* 报送状态
*/
@ElogTransform(name = "操作状态")
private String status;
/**
* 最后操作
*/
@ElogTransform(name = "最后操作")
private String lastOperate;
/**
* 最后操作时间
*/
@ElogTransform(name = "最后操作时间")
private Date lastOperateTime;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 修改时间
*/
@ElogTransform(name = "修改时间")
private Date updateTime;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 租户KEY
*/
@ElogTransform(name = "租户KEY")
private String tenantKey;
//主键id集合
private Collection<Long> ids;
private Collection<Long> taxAgentIds;
private Collection<String> lastOperates;
private Collection<String> statuses;
}

View File

@ -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;
/**
* 工资单批量操作参数
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalarySendBatParam {
// 工资单发放Id
private List<Long> salarySendIds;
}

View File

@ -107,6 +107,7 @@ public class SalaryAcctRecordBO {
.updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime()))
.description(salaryAcctRecordPO.getDescription())
.approvalStatus(salaryAcctRecordPO.getApprovalStatus())
.runStatus(salaryAcctRecordPO.getRunStatus())
.operate(btnList)
.opts(salaryAcctRecordPO.getOpts())
.build();
@ -124,7 +125,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)))
@ -138,6 +139,7 @@ public class SalaryAcctRecordBO {
.setCreator(employeeId)
.setCreateTime(now)
.setUpdateTime(now)
.setRunStatus(runStatus)
.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
}

View File

@ -176,7 +176,11 @@ public class SalaryAcctResultBO {
List<WeaTableColumnGroup> columns = Lists.newArrayList();
// 员工信息字段
for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobItemAggregateDTO.getEmpFields()) {
columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobEmpFieldDTO.getFieldName(), 0), salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId()));
if (salarySobEmpFieldDTO.getFieldId().equals("taxAgentName")) {
columns.add(new WeaTableColumnGroup("300", salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId()));
} else {
columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobEmpFieldDTO.getFieldName(), 0), salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId()));
}
}
// 薪资项目分组下的薪资项目
for (SalarySobItemGroupDTO salarySobItemGroupDTO : salarySobItemAggregateDTO.getItemGroups()) {

View File

@ -36,4 +36,6 @@ public class SalaryAcctRecordFormDTO {
//周期提示信息
private SalarySobCycleDTO cycleInfo;
private String msg;
}

View File

@ -67,6 +67,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<WeaTableOperate> operate;

View File

@ -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;
/**
* 批量操作参数
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryAcctBatParam {
//薪资所属月
private Date salaryMonth;
//薪资账套id
private List<Long> salarySobIds;
//备注
private String description;
private List<Long> salaryAcctRecordIds;
}

View File

@ -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<String> salarySobIds;
//备注
@DataCheck(max = 80, message = "备注不能超过80个字符")
private String description;
}

View File

@ -39,4 +39,10 @@ public class SalaryAcctRecordQueryParam extends BaseQueryParam {
private String startMonthStr;
private String endMonthStr;
/**
* 最后操作
* SalaryAcctOptEnum
*/
private List<String> lastOperates;
}

View File

@ -36,4 +36,6 @@ public class SalaryAcctRecordSaveParam {
//备注
@DataCheck(max = 80, message = "备注不能超过80个字符")
private String description;
private String runStatus;
}

View File

@ -0,0 +1,27 @@
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.List;
/**
* 薪资核算计算个税
*
* @author xiajun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryCalcTaxBatParam {
/**
* 参数错误薪资核算记录ID不能为空
*/
@DataCheck(require = true,message = "薪资核算记录ID不能为空")
private List<Long> salaryAcctRecordIds;
}

View File

@ -1,7 +1,10 @@
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;
/**
* 薪资核算计算个税
@ -9,6 +12,9 @@ import lombok.Data;
* @author xiajun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryCalcTaxParam {
/**

View File

@ -148,9 +148,19 @@ public class SalaryAcctRecordPO {
@Deprecated
private List<Long> lockSalaryItemIds;
/**
* 在线算税结果信息
*/
private String msg;
private Set<String> opts;
/**
* 执行状态
*/
private String runStatus;
//查询条件-------------------------------
Collection<Long> ids;

View File

@ -75,7 +75,7 @@ public class SalaryArchiveBO {
if (openSecondaryAccount) {
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "账号类型"), "accountType"));
}
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName"));
columns.add(new WeaTableColumn("300px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "工号"), "workcode"));

View File

@ -28,4 +28,6 @@ public class SalarySobQueryParam extends BaseQueryParam {
* 数据过滤级别
*/
private AuthFilterTypeEnum filterType;
private boolean isShare;
}

View File

@ -62,6 +62,7 @@ public class InsuranceAccountBO {
.otherNum(e.getOtherNum())
.otherPay(SalaryEntityUtil.thousandthConvert(e.getOtherPay()))
.remarks(e.getRemarks())
.fc(e.getFc())
.socialNum(e.getSocialNum())
.socialPay(SalaryEntityUtil.thousandthConvert(e.getSocialPay()))
.paymentOrganization(e.getPaymentOrganization() != null ? MapperProxyFactory.getProxy(TaxAgentMapper.class).getById(e.getPaymentOrganization()).getName() : "")

View File

@ -112,6 +112,8 @@ public class InsuranceAccountBatchListDTO {
@TableTitle(title = "备注", dataIndex = "remarks", key = "remarks")
private String remarks;
private Integer fc;
private Set<String> opts;

View File

@ -0,0 +1,583 @@
package com.engine.salary.entity.siaccount.dto;
import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.annotation.Encrypt;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QZReportListDTO {
/**
* 公司名称
*/
private Long paymentOrganization;
private String paymentOrganizationName;
/**
* 工号
*/
private String workCode;
/**
* 一级部门
*/
private String dept1;
/**
* 二级部门
*/
private String dept2;
/**
* 实际工作地
*/
private String actualWorkplace;
/**
* 劳动关系地
*/
private String laborWorkplace;
/**
* 岗位名称
*/
private String jobcall;
/**
* 进入日期
*/
/**
* 离职日期
*/
/**
* 社保基数
*/
private String socialBase;
/**
* 公积金基数
*/
private String fundBase;
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 账单月份
*/
@ElogTransform(name = "账单月份")
private String billMonth;
/**
* 账单状态 0-未归档 1-已归档
*/
@ElogTransform(name = "账单状态")
private Integer billStatus;
/**
* 缴纳状态
*/
@ElogTransform(name = "缴纳状态")
private Integer paymentStatus;
/**
* 补缴月份/退差月份
*/
@ElogTransform(name = "补缴月份/退差月份")
private String supplementaryMonth;
/**
* 补缴项目
*/
@ElogTransform(name = "补缴项目")
private String supplementaryProjects;
/**
* 数据来源 0-系统核算 1-临时数据
*/
@ElogTransform(name = "数据来源")
private Integer resourceFrom;
/**
* 社保缴纳组织
*/
@ElogTransform(name = "社保缴纳组织")
private Long socialPayOrg;
/**
* 社保账号
*/
@ElogTransform(name = "社保账号")
private String socialAccount;
/**
* 公积金缴纳组织
*/
@ElogTransform(name = "公积金缴纳组织")
private Long fundPayOrg;
/**
* 公积金账号
*/
@ElogTransform(name = "公积金账号")
private String fundAccount;
/**
* 补充公积金账号
*/
@ElogTransform(name = "补充公积金账号")
private String supplementFundAccount;
/**
* 其他福利缴纳组织
*/
@ElogTransform(name = "其他福利缴纳组织")
private Long otherPayOrg;
/**
* 社保方案ID
*/
@ElogTransform(name = "社保方案ID")
private Long socialSchemeId;
/**
* 社保缴纳基数
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数")
private String socialPaymentBaseString;
/**
* 社保缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数——单位")
private String socialPaymentComBaseString;
/**
* 公积金方案ID
*/
@ElogTransform(name = "公积金方案ID")
private Long fundSchemeId;
/**
* 公积金缴纳基数
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数")
private String fundPaymentBaseString;
/**
* 公积金缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数——单位")
private String fundPaymentComBaseString;
/**
* 其他福利方案id
*/
@ElogTransform(name = "其他福利方案id")
private Long otherSchemeId;
/**
* 其他福利缴纳基数
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数")
private String otherPaymentBaseString;
/**
* 其他福利缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数——单位")
private String otherPaymentComBaseString;
/**
* 社保个人缴费明细
*/
@Encrypt
@ElogTransform(name = "社保个人缴费明细")
private String socialPerJson;
/**
* 特殊社保缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊社保缴费明细")
private String socialSpecialJson;
/**
* 社保个人合计
*/
@Encrypt
@ElogTransform(name = "社保个人合计")
private String socialPerSum;
/**
* 公积金个人缴费明细
*/
@Encrypt
@ElogTransform(name = "公积金个人缴费明细")
private String fundPerJson;
/**
* 特殊公积金缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊公积金缴费明细")
private String fundSpecialJson;
/**
* 公积金个人合计
*/
@Encrypt
@ElogTransform(name = "公积金个人合计")
private String fundPerSum;
/**
* 其他福利个人缴费明细
*/
@Encrypt
@ElogTransform(name = "其他福利个人缴费明细")
private String otherPerJson;
/**
* 其他福利个人合计
*/
@Encrypt
@ElogTransform(name = "其他福利个人合计")
private String otherPerSum;
/**
* 个人合计
*/
@Encrypt
@ElogTransform(name = "个人合计")
private String perSum;
/**
* 社保单位缴费明细
*/
@Encrypt
@ElogTransform(name = "社保单位缴费明细")
private String socialComJson;
/**
* 社保单位合计
*/
@Encrypt
@ElogTransform(name = "社保单位合计")
private String socialComSum;
/**
* 公积金单位缴费明细
*/
@ElogTransform(name = "公积金单位缴费明细")
private String fundComJson;
/**
* 公积金单位合计
*/
@ElogTransform(name = "公积金单位合计")
private String fundComSum;
/**
* 其他福利单位缴费明细
*/
@ElogTransform(name = "其他福利单位缴费明细")
private String otherComJson;
/**
* 其他福利单位合计
*/
@ElogTransform(name = "其他福利单位合计")
private String otherComSum;
/**
* 单位合计
*/
@Encrypt
@ElogTransform(name = "单位合计")
private String comSum;
/**
* 社保合计
*/
@Encrypt
@ElogTransform(name = "社保合计")
private String socialSum;
/**
* 公积金合计
*/
@Encrypt
@ElogTransform(name = "公积金合计")
private String fundSum;
/**
* 其他福利合计
*/
@Encrypt
@ElogTransform(name = "其他福利合计")
private String otherSum;
/**
* 合计
*/
@Encrypt
@ElogTransform(name = "合计")
private String total;
private String subcompanyName;
private Long subcompanyId;
private String departmentName;
private Long departmentId;
private String jobtitleName;
private Long jobtitleId;
private Long jobcallId;
private String status;
/**
* 社保方案ID
*/
@ElogTransform(name = "社保方案ID")
private Long bSocialSchemeId;
/**
* 社保缴纳基数
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数")
private String bSocialPaymentBaseString;
/**
* 社保缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数——单位")
private String bSocialPaymentComBaseString;
/**
* 公积金方案ID
*/
@ElogTransform(name = "公积金方案ID")
private Long bFundSchemeId;
/**
* 公积金缴纳基数
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数")
private String bFundPaymentBaseString;
/**
* 公积金缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数——单位")
private String bFundPaymentComBaseString;
/**
* 其他福利方案id
*/
@ElogTransform(name = "其他福利方案id")
private Long bOtherSchemeId;
/**
* 其他福利缴纳基数
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数")
private String bOtherPaymentBaseString;
/**
* 其他福利缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数——单位")
private String bOtherPaymentComBaseString;
/**
* 社保个人缴费明细
*/
@Encrypt
@ElogTransform(name = "社保个人缴费明细")
private String bSocialPerJson;
/**
* 特殊社保缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊社保缴费明细")
private String bSocialSpecialJson;
/**
* 社保个人合计
*/
@Encrypt
@ElogTransform(name = "社保个人合计")
private String bSocialPerSum;
/**
* 公积金个人缴费明细
*/
@Encrypt
@ElogTransform(name = "公积金个人缴费明细")
private String bFundPerJson;
/**
* 特殊公积金缴费明细
*/
@Encrypt
@ElogTransform(name = "特殊公积金缴费明细")
private String bFundSpecialJson;
/**
* 公积金个人合计
*/
@Encrypt
@ElogTransform(name = "公积金个人合计")
private String bFundPerSum;
/**
* 其他福利个人缴费明细
*/
@Encrypt
@ElogTransform(name = "其他福利个人缴费明细")
private String bOtherPerJson;
/**
* 其他福利个人合计
*/
@Encrypt
@ElogTransform(name = "其他福利个人合计")
private String bOtherPerSum;
/**
* 个人合计
*/
@Encrypt
@ElogTransform(name = "个人合计")
private String bPerSum;
/**
* 社保单位缴费明细
*/
@Encrypt
@ElogTransform(name = "社保单位缴费明细")
private String bSocialComJson;
/**
* 社保单位合计
*/
@Encrypt
@ElogTransform(name = "社保单位合计")
private String bSocialComSum;
/**
* 公积金单位缴费明细
*/
@ElogTransform(name = "公积金单位缴费明细")
private String bFundComJson;
/**
* 公积金单位合计
*/
@ElogTransform(name = "公积金单位合计")
private String bFundComSum;
/**
* 其他福利单位缴费明细
*/
@ElogTransform(name = "其他福利单位缴费明细")
private String bOtherComJson;
/**
* 其他福利单位合计
*/
@ElogTransform(name = "其他福利单位合计")
private String bOtherComSum;
/**
* 单位合计
*/
@Encrypt
@ElogTransform(name = "单位合计")
private String bComSum;
/**
* 社保合计
*/
@Encrypt
@ElogTransform(name = "社保合计")
private String bSocialSum;
/**
* 公积金合计
*/
@Encrypt
@ElogTransform(name = "公积金合计")
private String bFundSum;
/**
* 其他福利合计
*/
@Encrypt
@ElogTransform(name = "其他福利合计")
private String bOtherSum;
/**
* 合计
*/
@Encrypt
@ElogTransform(name = "合计")
private String bTotal;
}

View File

@ -0,0 +1,43 @@
package com.engine.salary.entity.siaccount.param;
import com.engine.salary.enums.siaccount.FCEnum;
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<Long> paymentOrganizations;
private List<Long> ids;
private FCEnum fc;
}

View File

@ -0,0 +1,26 @@
package com.engine.salary.entity.siaccount.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 钱智社保报表
* <p>Copyright: Copyright (c) 2025</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class QZInsuranceAccountBatchParam {
private List<Long> ids;
}

View File

@ -143,6 +143,11 @@ public class InsuranceAccountBatchPO {
private Long jobcallId;
private String status;
/**
* 封存状态0-未封存 1-已封存
*/
private Integer fc;
private Set<String> opts;

View File

@ -26,4 +26,6 @@ public class TaxAgentQueryParam extends BaseQueryParam {
//个税扣缴义务人名称
private String name;
private boolean isShare;
}

View File

@ -721,6 +721,7 @@ public class TaxDeclarationBO {
private static String findStringValue(String fieldCode, Map<Long, List<SalaryAcctResultPO>> resultMap, Map<String, Long> salaryItemMap) {
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream()
.map(SalaryAcctResultPO::getResultValue)
.filter(Objects::nonNull)
.findFirst().orElse("");
}

View File

@ -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<String, List<TaxReportColumnPO>> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map<Long, List<TaxDeclarationValuePO>> 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<TaxDeclarationValuePO> values = taxDeclarationValueMap.get(taxDeclaration.getId());
for (TaxDeclarationValuePO taxDeclarationValue : values) {
@ -338,6 +343,10 @@ public class TaxDeclarationRequest {
Map<String, List<TaxReportColumnPO>> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map<Long, List<TaxDeclarationValuePO>> 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<TaxDeclarationValuePO> values = taxDeclarationValueMap.get(taxDeclaration.getId());
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory());
@ -380,6 +389,10 @@ public class TaxDeclarationRequest {
Map<String, List<TaxReportColumnPO>> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map<Long, List<TaxDeclarationValuePO>> 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<TaxDeclarationValuePO> values = taxDeclarationValueMap.get(taxDeclaration.getId());
for (TaxDeclarationValuePO taxDeclarationValue : values) {

View File

@ -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;
/**
* 生成个税申报表参数
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TaxDeclarationBatParam {
/**
* 个税申报id
*/
private Long taxDeclarationId;
/**
* 薪资所属月
*/
private Date salaryMonth;
/**
* 个税扣缴义务人
*/
private List<Long> 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;
}

View File

@ -73,6 +73,8 @@ public class TaxPaymentRequestPO implements Serializable {
//是否已获取反馈")
private Integer feedback;
private Integer reportType;
/**
* 租户key
*/

View File

@ -0,0 +1,56 @@
package com.engine.salary.enums.employeedeclare;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
/**
* 操作枚举
* <p>Copyright: Copyright (c) 2025</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public enum DeclareOptEnum implements BaseEnum<String> {
BAT_REFRESH("1", "批量刷新", 158772),
BAT_DECLARE("2", "批量报送", 158770),
BAT_DECLARE_FEEDBACK("3", "批量获取反馈", 158774);
DeclareOptEnum(String value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
private String value;
private String defaultLabel;
private int labelId;
@Override
public String getValue() {
return value;
}
@Override
public String getDefaultLabel() {
return defaultLabel;
}
@Override
public Integer getLabelId() {
return labelId;
}
public static DeclareOptEnum getByValue(String value) {
for (DeclareOptEnum e : DeclareOptEnum.values()) {
if (Objects.equals(e.getValue(), value)) {
return e;
}
}
return BAT_REFRESH;
}
}

View File

@ -0,0 +1,58 @@
package com.engine.salary.enums.salaryaccounting;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
/**
* 操作枚举
* <p>Copyright: Copyright (c) 2025</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public enum SalaryAcctOptEnum implements BaseEnum<String> {
UNPROCESSED("1", "未处理", 158772),
PROGRESS("2", "薪资计算中", 158770),
COMPLETED("3", "薪资计算完成", 158770),
ONLINE("4", "在线算税中", 158770),
RESULT("5", "已获取算税结果", 158774);
SalaryAcctOptEnum(String value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
private String value;
private String defaultLabel;
private int labelId;
@Override
public String getValue() {
return value;
}
@Override
public String getDefaultLabel() {
return defaultLabel;
}
@Override
public Integer getLabelId() {
return labelId;
}
public static SalaryAcctOptEnum getByValue(String value) {
for (SalaryAcctOptEnum e : SalaryAcctOptEnum.values()) {
if (Objects.equals(e.getValue(), value)) {
return e;
}
}
return UNPROCESSED;
}
}

View File

@ -0,0 +1,44 @@
package com.engine.salary.enums.siaccount;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
public enum FCEnum implements BaseEnum<Integer> {
JF(0, "解封", 91870),
FC(1, "封存", 91862);
private Integer value;
private String defaultLable;
private Integer labelId;
FCEnum(Integer value, String defaultLable, Integer labelId) {
this.value = value;
this.defaultLable = defaultLable;
this.labelId = labelId;
}
public Integer getValue() {
return this.value;
}
public Integer getLabelId() {
return this.labelId;
}
public String getDefaultLabel() {
return this.defaultLable;
}
public static FCEnum parseByValue(Integer value){
for (FCEnum e : FCEnum.values()) {
if(Objects.equals(e.getValue(), value)){
return e;
}
}
return JF;
}
}

View File

@ -0,0 +1,73 @@
package com.engine.salary.mapper.employeedeclare;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
public interface EmployeeDeclareOptMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<EmployeeDeclareOptPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<EmployeeDeclareOptPO> listSome(EmployeeDeclareOptPO employeeDeclareOpt);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
EmployeeDeclareOptPO getById(Long id);
/**
* 新增忽略null字段
*
* @param employeeDeclareOpt 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(EmployeeDeclareOptPO employeeDeclareOpt);
/**
* 修改修改所有字段
*
* @param employeeDeclareOpt 修改的记录
* @return 返回影响行数
*/
int update(EmployeeDeclareOptPO employeeDeclareOpt);
/**
* 修改忽略null字段
*
* @param employeeDeclareOpt 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(EmployeeDeclareOptPO employeeDeclareOpt);
/**
* 删除记录
*
* @param employeeDeclareOpt 待删除的记录
* @return 返回影响行数
*/
int delete(EmployeeDeclareOptPO employeeDeclareOpt);
/**
* 批量删除记录
* @param ids 主键id集合
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
EmployeeDeclareOptPO getByTaxAgentId(Long taxAgentId);
}

View File

@ -0,0 +1,278 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.employeedeclare.EmployeeDeclareOptMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO">
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="id" property="id"/>
<result column="last_operate" property="lastOperate"/>
<result column="last_operate_time" property="lastOperateTime"/>
<result column="status" property="status"/>
<result column="tax_cycle" property="taxCycle"/>
<result column="tax_agent_id" property="taxAgentId"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
create_time
, t.creator
, t.delete_type
, t.id
, t.last_operate
, t.last_operate_time
, t.status
, t.tax_agent_id
, t.tenant_key
, t.update_time
, t.tax_cycle
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_opt t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_opt t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_opt t
WHERE delete_type = 0
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="id != null">
AND id = #{id}
</if>
<if test="lastOperate != null">
AND last_operate = #{lastOperate}
</if>
<if test="lastOperateTime != null">
AND last_operate_time = #{lastOperateTime}
</if>
<if test="status != null">
AND status = #{status}
</if>
<if test="taxAgentId != null">
AND tax_agent_id = #{taxAgentId}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="taxCycle != null">
AND tax_cycle = #{taxCycle}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="taxAgentIds != null and taxAgentIds.size()>0">
AND tax_agent_id IN
<foreach collection="taxAgentIds" open="(" item="taxAgentId" separator="," close=")">
#{taxAgentId}
</foreach>
</if>
<if test="lastOperates != null and lastOperates.size()>0">
AND last_operate IN
<foreach collection="lastOperates" open="(" item="lastOperate" separator="," close=")">
#{lastOperate}
</foreach>
</if>
<if test="statuses != null and statuses.size()>0">
AND status IN
<foreach collection="statuses" open="(" item="status" separator="," close=")">
#{status}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO">
INSERT INTO hrsa_employee_declare_opt
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="id != null">
id,
</if>
<if test="lastOperate != null">
last_operate,
</if>
<if test="lastOperateTime != null">
last_operate_time,
</if>
<if test="status != null">
status,
</if>
<if test="taxAgentId != null">
tax_agent_id,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="taxCycle != null">
tax_cycle,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="createTime != null">
#{createTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="id != null">
#{id},
</if>
<if test="lastOperate != null">
#{lastOperate},
</if>
<if test="lastOperateTime != null">
#{lastOperateTime},
</if>
<if test="status != null">
#{status},
</if>
<if test="taxAgentId != null">
#{taxAgentId},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="taxCycle != null">
#{taxCycle},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO">
UPDATE hrsa_employee_declare_opt
<set>
create_time=#{createTime},
creator=#{creator},
delete_type=#{deleteType},
last_operate=#{lastOperate},
last_operate_time=#{lastOperateTime},
status=#{status},
tax_agent_id=#{taxAgentId},
tenant_key=#{tenantKey},
update_time=#{updateTime},
tax_cycle=#{taxCycle},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO">
UPDATE hrsa_employee_declare_opt
<set>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="lastOperate != null">
last_operate=#{lastOperate},
</if>
<if test="lastOperateTime != null">
last_operate_time=#{lastOperateTime},
</if>
<if test="status != null">
status=#{status},
</if>
<if test="taxAgentId != null">
tax_agent_id=#{taxAgentId},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="taxCycle != null">
tax_cycle=#{taxCycle},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete">
UPDATE hrsa_employee_declare_opt
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_employee_declare_opt
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getByTaxAgentId" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_opt t
WHERE tax_agent_id = #{taxAgentId} AND delete_type = 0
</select>
</mapper>

View File

@ -81,7 +81,7 @@ public interface SalaryAcctRecordMapper {
List<SalaryAcctRecordPO> getBackCalcRecordByIds(@Param("collection") Set<Long> 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);
/**

View File

@ -16,6 +16,7 @@
<result column="tenant_key" property="tenantKey"/>
<result column="back_calc_status" property="backCalcStatus"/>
<result column="lock_salary_item_ids" property="lockSalaryItemIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
<result column="run_status" property="runStatus"/>
</resultMap>
<resultMap id="BaseResultMap2" type="com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO">
@ -34,6 +35,7 @@
<result column="back_calc_status" property="backCalcStatus"/>
<result column="lock_salary_item_ids" property="lockSalaryItemIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
<result column="tax_agent_id" property="taxAgentId"/>
<result column="msg" property="msg"/>
</resultMap>
<!-- 表字段 -->
@ -56,6 +58,8 @@
, t.lock_salary_item_ids
, t.approval_status
, t.approval_id
, t.run_status
, t.msg
</sql>
<!-- 查询全部 -->
@ -226,6 +230,9 @@
<if test="tenantKey != null">
tenant_key,
</if>
<if test="runStatus != null">
run_status,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -264,6 +271,9 @@
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="runStatus != null">
#{runStatus},
</if>
</trim>
</insert>
@ -312,6 +322,9 @@
<if test="tenantKey != null">
tenant_key,
</if>
<if test="runStatus != null">
run_status,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -350,6 +363,9 @@
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="runStatus != null">
#{runStatus},
</if>
</trim>
</insert>
@ -419,6 +435,9 @@
<if test="approvalStatus != null">
approval_status=#{approvalStatus},
</if>
<if test="msg != null">
msg=#{msg},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -455,7 +474,8 @@
<update id="updateDate">
UPDATE hrsa_salary_acct_record
SET update_time=#{updateTime}
SET update_time=#{updateTime},
run_status=#{runStatus}
WHERE delete_type = 0
AND id = #{id}
</update>

View File

@ -19,6 +19,7 @@
<result column="update_time" property="updateTime"/>
<result column="tenant_key" property="tenantKey"/>
<result column="payment_organization" property="paymentOrganization"/>
<result column="fc" property="fc"/>
</resultMap>
<!-- 表字段 -->
@ -42,6 +43,7 @@
, t.update_time
, t.tenant_key
, t.payment_organization
, t.fc
</sql>
<insert id="insert" parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO"
@ -65,6 +67,7 @@
update_time,
tenant_key,
payment_organization,
fc,
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
#{billMonth},
@ -83,6 +86,7 @@
#{updateTime},
#{tenantKey},
#{paymentOrganization},
#{fc},
</trim>
</insert>
@ -111,6 +115,7 @@
update_time,
tenant_key,
payment_organization,
fc,
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
#{billMonth},
@ -129,6 +134,7 @@
#{updateTime},
#{tenantKey},
#{paymentOrganization},
#{fc},
</trim>
</insert>
@ -235,7 +241,10 @@
other_pay=#{otherPay},
</if>
<if test="billStatus != null">
bill_status=#{billStatus}
bill_status=#{billStatus},
</if>
<if test="fc != null">
fc=#{fc}
</if>
</set>
WHERE id = #{id} AND delete_type = 0

View File

@ -1,5 +1,6 @@
package com.engine.salary.mapper.siaccount;
import com.engine.salary.entity.siaccount.dto.QZReportListDTO;
import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam;
import com.engine.salary.entity.siaccount.param.SupplementAccountBaseParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
@ -200,4 +201,6 @@ public interface InsuranceAccountDetailMapper {
void deleteByIds(@Param("ids")List<Long> ids);
void deleteByEmpIds(@Param("employeeIds")List<Long> deleteEmployeeIds, @Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization);
List<QZReportListDTO> qzReportList(InsuranceAccountDetailParam queryParam);
}

View File

@ -1636,4 +1636,188 @@
AND t.payment_organization = #{paymentOrganization}
AND t.employee_id = #{employeeId}
</select>
<resultMap id="qzReportListMap" type="com.engine.salary.entity.siaccount.dto.QZReportListDTO">
<result column="id" property="id"/>
<result column="payment_organization" property="paymentOrganization"/>
<result column="employee_id" property="employeeId"/>
<result column="bill_month" property="billMonth"/>
<result column="bill_status" property="billStatus"/>
<result column="payment_status" property="paymentStatus"/>
<result column="supplementary_month" property="supplementaryMonth"/>
<result column="supplementary_projects" property="supplementaryProjects"/>
<result column="resource_from" property="resourceFrom"/>
<result column="social_pay_org" property="socialPayOrg"/>
<result column="social_account" property="socialAccount"/>
<result column="fund_pay_org" property="fundPayOrg"/>
<result column="fund_account" property="fundAccount"/>
<result column="supplement_fund_account" property="supplementFundAccount"/>
<result column="other_pay_org" property="otherPayOrg"/>
<result column="subcompany_name" property="subcompanyName"/>
<result column="subcompany_id" property="subcompanyId"/>
<result column="department_name" property="departmentName"/>
<result column="department_id" property="departmentId"/>
<result column="jobtitle_name" property="jobtitleName"/>
<result column="jobtitle_id" property="jobtitleId"/>
<result column="jobcall" property="jobcall"/>
<result column="jobcall_id" property="jobcallId"/>
<result column="status" property="status"/>
<result column="social_scheme_id" property="socialSchemeId"/>
<result column="social_payment_base_string" property="socialPaymentBaseString"/>
<result column="social_payment_com_base_string" property="socialPaymentComBaseString"/>
<result column="fund_scheme_id" property="fundSchemeId"/>
<result column="fund_payment_base_string" property="fundPaymentBaseString"/>
<result column="fund_payment_com_base_string" property="fundPaymentComBaseString"/>
<result column="other_scheme_id" property="otherSchemeId"/>
<result column="other_payment_base_string" property="otherPaymentBaseString"/>
<result column="other_payment_com_base_string" property="otherPaymentComBaseString"/>
<result column="social_per_json" property="socialPerJson"/>
<result column="social_per_sum" property="socialPerSum"/>
<result column="fund_per_json" property="fundPerJson"/>
<result column="fund_per_sum" property="fundPerSum"/>
<result column="other_per_json" property="otherPerJson"/>
<result column="other_per_sum" property="otherPerSum"/>
<result column="per_sum" property="perSum"/>
<result column="social_com_json" property="socialComJson"/>
<result column="social_com_sum" property="socialComSum"/>
<result column="fund_com_json" property="fundComJson"/>
<result column="fund_com_sum" property="fundComSum"/>
<result column="other_com_json" property="otherComJson"/>
<result column="other_com_sum" property="otherComSum"/>
<result column="com_sum" property="comSum"/>
<result column="social_sum" property="socialSum"/>
<result column="fund_sum" property="fundSum"/>
<result column="other_sum" property="otherSum"/>
<result column="total" property="total"/>
<result column="social_special_json" property="socialSpecialJson"/>
<result column="fund_special_json" property="fundSpecialJson"/>
<result column="b_social_scheme_id" property="bSocialSchemeId"/>
<result column="b_social_payment_base_string" property="bSocialPaymentBaseString"/>
<result column="b_social_payment_com_base_string" property="bSocialPaymentComBaseString"/>
<result column="b_fund_scheme_id" property="bFundSchemeId"/>
<result column="b_fund_payment_base_string" property="bFundPaymentBaseString"/>
<result column="b_fund_payment_com_base_string" property="bFundPaymentComBaseString"/>
<result column="b_other_scheme_id" property="bOtherSchemeId"/>
<result column="b_other_payment_base_string" property="bOtherPaymentBaseString"/>
<result column="b_other_payment_com_base_string" property="bOtherPaymentComBaseString"/>
<result column="b_social_per_json" property="bSocialPerJson"/>
<result column="b_social_per_sum" property="bSocialPerSum"/>
<result column="b_fund_per_json" property="bFundPerJson"/>
<result column="b_fund_per_sum" property="bFundPerSum"/>
<result column="b_other_per_json" property="bOtherPerJson"/>
<result column="b_other_per_sum" property="bOtherPerSum"/>
<result column="b_per_sum" property="bPerSum"/>
<result column="b_social_com_json" property="bSocialComJson"/>
<result column="b_social_com_sum" property="bSocialComSum"/>
<result column="b_fund_com_json" property="bFundComJson"/>
<result column="b_fund_com_sum" property="bFundComSum"/>
<result column="b_other_com_json" property="bOtherComJson"/>
<result column="b_other_com_sum" property="bOtherComSum"/>
<result column="b_com_sum" property="bComSum"/>
<result column="b_social_sum" property="bSocialSum"/>
<result column="b_fund_sum" property="bFundSum"/>
<result column="b_other_sum" property="bOtherSum"/>
<result column="b_total" property="bTotal"/>
<result column="b_social_special_json" property="bSocialSpecialJson"/>
<result column="b_fund_special_json" property="bFundSpecialJson"/>
</resultMap>
<select id="qzReportList" parameterType="com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam" resultMap="qzReportListMap">
select a.id
, a.employee_id
, a.status as employee_status
, a.bill_month
, a.bill_status
, a.payment_status
, a.supplementary_month
, a.supplementary_projects
, a.resource_from
, a.social_pay_org
, a.social_account
, a.fund_pay_org
, a.fund_account
, a.supplement_fund_account
, a.other_pay_org
, a.social_scheme_id
, a.social_payment_base_string
, a.social_payment_com_base_string
, a.fund_scheme_id
, a.fund_payment_base_string
, a.fund_payment_com_base_string
, a.other_scheme_id
, a.other_payment_base_string
, a.other_payment_com_base_string
, a.social_per_json
, a.social_per_sum
, a.fund_per_json
, a.fund_per_sum
, a.other_per_json
, a.other_per_sum
, a.per_sum
, a.social_com_json
, a.social_com_sum
, a.fund_com_json
, a.fund_com_sum
, a.other_com_json
, a.other_com_sum
, a.com_sum
, a.social_sum
, a.fund_sum
, a.other_sum
, a.total
, a.payment_organization
, a.subcompany_name
, a.subcompany_id
, a.department_name
, a.department_id
, a.jobtitle_name
, a.jobtitle_id
, a.jobcall
, a.jobcall_id
, a.status
, a.social_special_json
, a.fund_special_json
, b.social_scheme_id as b_social_scheme_id
, b.social_payment_base_string as b_social_payment_base_string
, b.social_payment_com_base_string as b_social_payment_com_base_string
, b.fund_scheme_id as b_fund_scheme_id
, b.fund_payment_base_string as b_fund_payment_base_string
, b.fund_payment_com_base_string as b_fund_payment_com_base_string
, b.other_scheme_id as b_other_scheme_id
, b.other_payment_base_string as b_other_payment_base_string
, b.other_payment_com_base_string as b_other_payment_com_base_string
, b.social_per_json as b_social_per_json
, b.social_per_sum as b_social_per_sum
, b.fund_per_json as b_fund_per_json
, b.fund_per_sum as b_fund_per_sum
, b.other_per_json as b_other_per_json
, b.other_per_sum as b_other_per_sum
, b.per_sum as b_per_sum
, b.social_com_json as b_social_com_json
, b.social_com_sum as b_social_com_sum
, b.fund_com_json as b_fund_com_json
, b.fund_com_sum as b_fund_com_sum
, b.other_com_json as b_other_com_json
, b.other_com_sum as b_other_com_sum
, b.com_sum as b_com_sum
, b.social_sum as b_social_sum
, b.fund_sum as b_fund_sum
, b.other_sum as b_other_sum
, b.total as b_total
from
(select * from hrsa_bill_detail where delete_type = 0 and payment_status=0) a
left join (select * from hrsa_bill_detail where delete_type = 0 and payment_status=1) b on a.employee_id = b.employee_id
where a.payment_organization = #{paymentOrganization} and a.bill_month = #{billMonth}
</select>
</mapper>

View File

@ -79,8 +79,6 @@ public interface TaxPaymentRequestMapper {
void updateFeedbackByRequestTypeTaxAgentIdTaxYearMonth(TaxPaymentRequestPO build);
void updateFeedbackByTaxDeclareRecordId(TaxPaymentRequestPO build);
TaxPaymentRequestPO getOne(TaxPaymentRequestPO build);
}

View File

@ -14,6 +14,7 @@
<result column="tax_year_month" property="taxYearMonth"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
<result column="report_type" property="reportType"/>
</resultMap>
<!-- 表字段 -->
@ -32,6 +33,7 @@
, t.tax_year_month
, t.tenant_key
, t.update_time
, t.report_type
</sql>
<!-- 查询全部 -->
@ -93,6 +95,9 @@
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="reportType != null">
AND report_type = #{reportType}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
@ -142,7 +147,10 @@
tenant_key,
</if>
<if test="updateTime != null">
update_time
update_time,
</if>
<if test="reportType != null">
report_type
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
@ -180,7 +188,10 @@
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime}
#{updateTime},
</if>
<if test="reportType != null">
#{reportType}
</if>
</trim>
</insert>
@ -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}
</foreach>
)
</insert>
@ -236,7 +249,8 @@
tax_declare_record_id,
tax_year_month,
tenant_key,
update_time
update_time,
report_type
)
<foreach collection="collection" item="item" separator="union all">
@ -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
</foreach>
</insert>
@ -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}
)
</foreach>
</insert>
@ -307,6 +324,7 @@
tax_year_month=#{taxYearMonth},
tenant_key=#{tenantKey},
update_time=#{updateTime},
report_type=#{reportType},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -349,6 +367,9 @@
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="reportType != null">
report_type=#{reportType},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -385,17 +406,9 @@
AND request_type=#{requestType}
AND tax_agent_id=#{taxAgentId}
AND tax_year_month=#{taxYearMonth}
AND report_type=#{reportType}
</update>
<update id="updateFeedbackByTaxDeclareRecordId"
parameterType="com.engine.salary.entity.taxpayment.po.TaxPaymentRequestPO">
UPDATE hrsa_tax_payment_request
<set>
feedback=#{feedback}
</set>
WHERE delete_type = 0
AND tax_declare_record_id=#{taxDeclareRecordId}
</update>
<!-- 根据主键获取单条记录 -->
@ -407,6 +420,7 @@
AND request_type = #{requestType}
AND tax_agent_id = #{taxAgentId}
AND tax_year_month = #{taxYearMonth}
AND report_type = #{reportType}
</select>
</mapper>

View File

@ -11,7 +11,6 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.setting.param.PageListSettingQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.auth.AuthFilterTypeEnum;
@ -31,6 +30,8 @@ import com.engine.salary.service.*;
import com.engine.salary.service.auth.AuthService;
import com.engine.salary.service.auth.AuthServiceImpl;
import com.engine.salary.service.impl.*;
import com.engine.salary.sys.service.SalarySysConfService;
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
@ -49,6 +50,8 @@ import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE;
/**
* 薪酬统计员工明细
* <p>Copyright: Copyright (c) 2022</p>
@ -103,6 +106,11 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
return ServiceUtil.getService(SettingServiceImpl.class, user);
}
private SalarySysConfService getSalarySysConfService(User user) {
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
}
private final boolean isRealOrg = "1".equals(getSalarySysConfService(user).getValueByCode(REPORT_ORGANIZATIN_TYPE));
@Override
public PageInfo<SalaryStatisticsEmployeeListDTO> listPage(SalaryStatisticsEmployeeQueryParam queryParam) {
List<SalaryStatisticsEmployeeListDTO> list = Collections.emptyList();
@ -262,14 +270,22 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
map.put("salarySob", SalarySobMap.get(se.getSalarySobId()));
map.put("acctTimes", salaryAcctRecordMap.get(se.getSalaryAcctRecordId()));
map.put("userName", Util.null2String(emp.getUsername()));
map.put("subCompany", Util.null2String(emp.getSubcompanyName()));
map.put("department", Util.null2String(emp.getDepartmentName()));
map.put("jobTitle", Util.null2String(emp.getJobtitleName()));
map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null));
map.put("workCode", Util.null2String(emp.getWorkcode()));
map.put("idNo", Util.null2String(emp.getIdNo()));
map.put("companystartdate", Util.null2String(emp.getCompanystartdate()));
if(isRealOrg){
map.put("subCompany", Util.null2String(emp.getSubcompanyName()));
map.put("department", Util.null2String(emp.getDepartmentName()));
map.put("jobTitle", Util.null2String(emp.getJobtitleName()));
map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null));
}else {
map.put("subCompany", Util.null2String(se.getSubcompanyName()));
map.put("department", Util.null2String(se.getDepartmentName()));
map.put("jobTitle", Util.null2String(se.getJobtitleName()));
map.put("status", Util.null2String(NumberUtil.isNumber(se.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(se.getStatus())).getDefaultLabel() : null));
}
// IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory()));
// map.put("incomeCategory", Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel()));
list.add(map);

View File

@ -525,7 +525,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
throw new SalaryRunTimeException("该维度值中无数据!");
}
// 同一个人放在一起
listByDimensionValue = listByDimensionValue.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId)).collect(Collectors.toList());
listByDimensionValue = listByDimensionValue.stream().sorted((a,b)-> b.getSalaryMonth().compareTo(a.getSalaryMonth())).collect(Collectors.toList());
List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), listByDimensionValue);
// 获取此分页的核算人员

View File

@ -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 {
// 判断报表是否是登陆人创建的,或薪酬总管理员

View File

@ -0,0 +1,28 @@
package com.engine.salary.service;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclareOptPO;
import java.util.List;
/**
* 人员报送人员
* <p>Copyright: Copyright (c) 2023</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public interface EmployeeDeclareOptService {
/**
* 查询操作记录
* @param po
* @return
*/
List<EmployeeDeclareOptPO> listSome(EmployeeDeclareOptPO po);
/**
* 记录操作
* @param po
*/
void record(EmployeeDeclareOptPO po);
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.service;
import com.engine.salary.entity.siaccount.dto.QZReportListDTO;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO;
@ -19,4 +20,6 @@ public interface RecordsBuildService {
List<Map<String, Object>> buildCommonRecordsWithStyle(List<InsuranceAccountDetailPO> list, Long employeeId);
List<Map<String, Object>> buildInspectRecords(List<InsuranceAccountInspectPO> list, Long paymentOrganization);
List<Map<String, Object>> buildQzReport(List<QZReportListDTO> list, Long employeeId, boolean dynamicEmpInfo);
}

View File

@ -16,7 +16,6 @@ import java.util.Map;
/**
* @Author weaver_cl
*
* @Date 2022/4/11
* @Version V1.0
**/
@ -24,55 +23,63 @@ public interface SIAccountService {
/**
* 查询台账列表
*
* @param insuranceAccountBatchParam
* @return
*/
Map<String,Object> listPage(InsuranceAccountBatchParam insuranceAccountBatchParam);
Map<String, Object> listPage(InsuranceAccountBatchParam insuranceAccountBatchParam);
/**
* 获取正常缴纳列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> listCommonPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> listCommonPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 根据姓名名获取正常缴纳列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> listCommonPageByName(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> listCommonPageByName(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 获取补缴缴纳列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> listSupplementaryPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> listSupplementaryPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 获取退差列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> listRecessionPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> listRecessionPage(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 获取补差列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> listBalancePage(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> listBalancePage(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 根据姓名获取补缴缴纳列表
*
* @param insuranceAccountDetailParam
* @return
*/
Map<String,Object> supplementaryByNameList(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> supplementaryByNameList(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 获取核算月份备注填写表单
*
* @param params
* @return
*/
@ -80,12 +87,14 @@ public interface SIAccountService {
/**
* 保存并进入核算
*
* @param param
*/
String save(AccountParam param);
/**
* 新建核算并归档
*
* @param param
* @return
*/
@ -93,48 +102,56 @@ public interface SIAccountService {
/**
* 正常缴纳页核算
*
* @param saveCommonAccountParam
*/
void commonAccount(SaveCommonAccountParam saveCommonAccountParam);
/**
* 删除月份表单
*
* @param accountParam
*/
void delete(AccountParam accountParam);
/**
* 添加正常缴纳人员
*
* @param accountParam
*/
void saveCommonAccount(SaveCommonAccountParam accountParam);
/**
* 添加补缴人员
*
* @param saveSupplementaryAccountParam
*/
void saveSupplementaryAccount(SaveSupplementaryAccountParam saveSupplementaryAccountParam);
/**
* 删除正常缴纳人员
*
* @param accountParam
*/
void deleteCommonAccount(SaveCommonAccountParam accountParam);
/**
* 删除补缴人员
*
* @param param
*/
void deleteSupplementaryAccount(SaveCommonAccountParam param);
/**
* 台账归档
*
* @param accountParam
*/
void file(AccountParam accountParam);
/**
* 重置核算异常
*
* @param ids
*/
void unconfirmed(Collection<Long> ids);
@ -142,6 +159,7 @@ public interface SIAccountService {
/**
* 获取核算异常列表页是否导出档案开关
*
* @param billMonth
*/
Map<String, Boolean> buttonCheck(String billMonth);
@ -149,6 +167,7 @@ public interface SIAccountService {
/**
* 忽略核算异常
*
* @param longs
*/
void ignore(Collection<Long> longs);
@ -160,41 +179,46 @@ public interface SIAccountService {
/**
* 人员异动
*
* @param insuranceAccountDetailParam
*/
Map<String,Object> changeList(InsuranceAccountDetailParam insuranceAccountDetailParam);
Map<String, Object> changeList(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 核算核算异常重新核算
*
* @param inspectAccountParam
*/
void accountInspect(InspectAccountParam inspectAccountParam);
/**
* 核算失败列表
*
* @param param
*/
Map<String,Object> getInspectTable(InsuranceAccountDetailParam param);
Map<String, Object> getInspectTable(InsuranceAccountDetailParam param);
/**
* 正常缴纳添加缴纳人员表单
*
* @param params
* @return
*/
Map<String,Object> getCommonForm(Map<String, Object> params);
Map<String, Object> getCommonForm(Map<String, Object> params);
/**
* 补缴添加缴纳人员表单
*
* @param params
* @return
*/
Map<String,Object> getSupplementaryForm(Map<String, Object> params);
Map<String, Object> getSupplementaryForm(Map<String, Object> params);
/**
* 总览
*
* @param param
* @return
*/
@ -207,7 +231,7 @@ public interface SIAccountService {
* @param employeeIds
* @return
*/
List<Map<String, Object>> welfareData(String billMonth, List<Long> employeeIds,Long taxAgentId);
List<Map<String, Object>> welfareData(String billMonth, List<Long> employeeIds, Long taxAgentId);
/**
* 给套账提供字段名对应字段释义
@ -295,18 +319,21 @@ public interface SIAccountService {
/**
* 补缴合计行
*
* @param insuranceAccountDetailParam
*/
Map<String, Object> listSupplementarySum(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 退差合计列
*
* @param insuranceAccountDetailParam
*/
Map<String, Object> listRecessionSum(InsuranceAccountDetailParam insuranceAccountDetailParam);
/**
* 补差合计列
*
* @param insuranceAccountDetailParam
*/
Map<String, Object> listBalanceSum(InsuranceAccountDetailParam insuranceAccountDetailParam);
@ -324,5 +351,22 @@ 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);
Map<String, Object> qzReport(QZInsuranceAccountBatchParam qzInsuranceAccountBatchParam);
XSSFWorkbook exportQZReport(QZInsuranceAccountBatchParam param);
String batFC(AccountBatParam batParam);
Boolean fcAuth();
}

View File

@ -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;
@ -217,7 +218,7 @@ public interface SalaryAcctRecordService {
List<SalaryAcctRecordPO> listSome(SalaryAcctRecordPO po);
void updateDate(Long id, Date updateTime);
void updateDate(Long id, Date updateTime, String runStatus);
/**
* 根据薪资核算记录id查询关联的个税扣缴义务人
@ -227,4 +228,12 @@ public interface SalaryAcctRecordService {
*/
List<SalaryAcctTaxAgentPO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds);
void batSave(SalaryAcctBatParam saveParam);
void batFile(SalaryAcctBatParam param);
void batReCalculate(SalaryAcctBatParam param);
void updateMsg(Long salaryAcctRecordId, String s);
}

View File

@ -1,6 +1,7 @@
package com.engine.salary.service;
import com.engine.salary.entity.salaryacct.dto.SalaryCalcTaxInfoDTO;
import com.engine.salary.entity.salaryacct.param.SalaryCalcTaxBatParam;
import com.engine.salary.entity.salaryacct.param.SalaryCalcTaxParam;
public interface SalaryCalcTaxService {
@ -26,4 +27,9 @@ public interface SalaryCalcTaxService {
* @param salaryCalcTaxParam
*/
void calcTaxFeedback(SalaryCalcTaxParam salaryCalcTaxParam);
void batCalcTax(SalaryCalcTaxBatParam salaryCalcTaxBatParam);
void batCalcTaxFeedback(SalaryCalcTaxBatParam salaryCalcTaxBatParam);
}

View File

@ -21,6 +21,7 @@ import com.engine.salary.mapper.auth.AuthRoleMapper;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
import java.util.HashSet;
@ -156,7 +157,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService {
public List<AuthRoleDataDTO> listRoleData( AuthDataQueryParam param) {
List<AuthRoleDataDTO> authRoleDataDTOS = getAuthRoleDataMapper().listRoleData(param.getRoleId());
if (StrUtil.isNotEmpty(param.getUsername())){
authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList());
authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> StringUtils.isNotBlank(authRoleDataDTO.getUsername()) && authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList());
}
return authRoleDataDTOS;
}

View File

@ -24,6 +24,7 @@ import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
@ -196,7 +197,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService
public List<AuthRoleEmpDTO> listRoleEmp(AuthMemberQueryParam param) {
List<AuthRoleEmpDTO> empDTOS = getAuthRoleEmpMapper().getByRoleId(param.getRoleId());
if(StrUtil.isNotEmpty(param.getUsername())){
empDTOS = empDTOS.stream().filter(item -> item.getUsername().contains(param.getUsername())).collect(Collectors.toList());
empDTOS = empDTOS.stream().filter(item -> StringUtils.isNotBlank(item.getUsername()) && item.getUsername().contains(param.getUsername())).collect(Collectors.toList());
}
return empDTOS;

View File

@ -1,6 +1,7 @@
package com.engine.salary.service.auth;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
@ -63,6 +64,12 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService {
public PageInfo<AuthRoleDTO> roleList(AuthRoleListQueryParam param) {
List<AuthRolePO> authRolePOS = getAuthRoleMapper().list(param);
String name = param.getName();
if(StrUtil.isNotBlank(name)){
authRolePOS = authRolePOS.stream().filter(po -> po.getName().contains(name)).collect(Collectors.toList());
}
int total = authRolePOS.size();
List<AuthRoleDTO> list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authRolePOS)

Some files were not shown because too many files have changed in this diff Show More