From 0c0c754a9d94fd77e3baefcdece1979719e45107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Jun 2024 11:01:58 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/DM/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/GS/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/GS/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/JC/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/JC/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/Mysql/sql202406180103.sql | 10 +++ resource/sqlupgrade/Mysql/sql202406180403.sql | 29 +++++++ .../sqlupgrade/Oracle/sql202406180103.sql | 18 ++++ .../sqlupgrade/Oracle/sql202406180403.sql | 69 +++++++++++++++ resource/sqlupgrade/PG/sql202406180103.sql | 9 ++ resource/sqlupgrade/PG/sql202406180403.sql | 68 +++++++++++++++ .../sqlupgrade/SQLServer/sql202406180103.sql | 11 +++ .../sqlupgrade/SQLServer/sql202406180403.sql | 31 +++++++ resource/sqlupgrade/ST/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/ST/sql202406180403.sql | 70 +++++++++++++++ .../salaryacct/bo/SalaryAcctEmployeeBO.java | 9 ++ .../salaryacct/bo/SalaryAcctResultBO.java | 25 +++++- .../salaryacct/po/SalaryAcctEmployeePO.java | 30 +++++++ .../mapper/datacollection/EmployMapper.xml | 24 ++--- .../salaryacct/SalaryAcctEmployeeMapper.xml | 87 +++++++++++++++++-- .../impl/SalaryEmployeeServiceImpl.java | 4 +- 22 files changed, 784 insertions(+), 28 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202406180103.sql create mode 100644 resource/sqlupgrade/DM/sql202406180403.sql create mode 100644 resource/sqlupgrade/GS/sql202406180103.sql create mode 100644 resource/sqlupgrade/GS/sql202406180403.sql create mode 100644 resource/sqlupgrade/JC/sql202406180103.sql create mode 100644 resource/sqlupgrade/JC/sql202406180403.sql create mode 100644 resource/sqlupgrade/Mysql/sql202406180103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202406180403.sql create mode 100644 resource/sqlupgrade/Oracle/sql202406180103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202406180403.sql create mode 100644 resource/sqlupgrade/PG/sql202406180103.sql create mode 100644 resource/sqlupgrade/PG/sql202406180403.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202406180103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202406180403.sql create mode 100644 resource/sqlupgrade/ST/sql202406180103.sql create mode 100644 resource/sqlupgrade/ST/sql202406180403.sql diff --git a/resource/sqlupgrade/DM/sql202406180103.sql b/resource/sqlupgrade/DM/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/DM/sql202406180403.sql b/resource/sqlupgrade/DM/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/GS/sql202406180103.sql b/resource/sqlupgrade/GS/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202406180403.sql b/resource/sqlupgrade/GS/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/JC/sql202406180103.sql b/resource/sqlupgrade/JC/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202406180403.sql b/resource/sqlupgrade/JC/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202406180103.sql b/resource/sqlupgrade/Mysql/sql202406180103.sql new file mode 100644 index 000000000..4217d5d31 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202406180103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_salary_acct_emp +ADD COLUMN subcompany_name varchar(200) , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name varchar(200), +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name varchar(200) , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall varchar(200), +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status varchar(200); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202406180403.sql b/resource/sqlupgrade/Mysql/sql202406180403.sql new file mode 100644 index 000000000..c81607e2b --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202406180403.sql @@ -0,0 +1,29 @@ +update hrsa_salary_acct_emp a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId + set a.department_id = b.departmentId, + a.department_name = b.departmentName, + a.subcompany_id = b.subcompanyid, + a.subcompany_name = b.subcompanyName, + a.jobtitle_id = b.jobtitleId, + a.jobtitle_name = b.jobtitleName, + a.jobcall_id = b.jobcallId, + a.jobcall = b.jobcall, + a.status = b.status +where a.delete_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202406180103.sql b/resource/sqlupgrade/Oracle/sql202406180103.sql new file mode 100644 index 000000000..ee99ea754 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202406180103.sql @@ -0,0 +1,18 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null +/ +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add department_id NUMBER null +/ +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL +/ +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL +/ +alter table hrsa_salary_acct_emp add status varchar2(200) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202406180403.sql b/resource/sqlupgrade/Oracle/sql202406180403.sql new file mode 100644 index 000000000..246694499 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202406180403.sql @@ -0,0 +1,69 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202406180103.sql b/resource/sqlupgrade/PG/sql202406180103.sql new file mode 100644 index 000000000..59a96d245 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202406180103.sql @@ -0,0 +1,9 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar(200); +alter table hrsa_salary_acct_emp add subcompany_id bigint; +alter table hrsa_salary_acct_emp add department_name varchar(200); +alter table hrsa_salary_acct_emp add department_id bigint; +alter table hrsa_salary_acct_emp add jobtitle_name varchar(200); +alter table hrsa_salary_acct_emp add jobtitle_id bigint; +alter table hrsa_salary_acct_emp add jobcall varchar(200); +alter table hrsa_salary_acct_emp add jobcall_id bigint; +alter table hrsa_salary_acct_emp add status varchar(200); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202406180403.sql b/resource/sqlupgrade/PG/sql202406180403.sql new file mode 100644 index 000000000..a15174c5f --- /dev/null +++ b/resource/sqlupgrade/PG/sql202406180403.sql @@ -0,0 +1,68 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202406180103.sql b/resource/sqlupgrade/SQLServer/sql202406180103.sql new file mode 100644 index 000000000..87973812c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202406180103.sql @@ -0,0 +1,11 @@ +ALTER TABLE hrsa_salary_acct_emp +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202406180403.sql b/resource/sqlupgrade/SQLServer/sql202406180403.sql new file mode 100644 index 000000000..02b5785e9 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202406180403.sql @@ -0,0 +1,31 @@ +UPDATE hrsa_salary_acct_emp +set department_id = b.departmentId, + department_name = b.departmentName, + subcompany_id = b.subcompanyid, + subcompany_name = b.subcompanyName, + jobtitle_id = b.jobtitleId, + jobtitle_name = b.jobtitleName, + jobcall_id = b.jobcallId, + jobcall = b.jobcall, + status = b.status +FROM hrsa_salary_acct_emp a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId +WHERE a.delete_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202406180103.sql b/resource/sqlupgrade/ST/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/ST/sql202406180403.sql b/resource/sqlupgrade/ST/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 39499174c..dbbe56104 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -147,6 +147,15 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) + .departmentId(emp.getDepartmentId()) + .departmentName(emp.getDepartmentName()) + .jobcall(emp.getJobcall()) + .jobcallId(emp.getJobcallId()) + .jobtitleId(emp.getJobtitleId()) + .jobtitleName(emp.getJobtitleName()) + .subcompanyId(emp.getSubcompanyid()) + .subcompanyName(emp.getSubcompanyName()) + .status(emp.getStatus()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index 121092602..d68ab0330 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -20,6 +20,7 @@ import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.SalaryValueTypeEnum; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.SalaryEntityUtil; @@ -267,6 +268,7 @@ public class SalaryAcctResultBO { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return Collections.emptyList(); } + SalaryI18nUtil.i18nList(salaryAcctEmployees); Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId); Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAccountingResults, SalaryAcctResultPO::getEmployeeId); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); @@ -278,12 +280,31 @@ public class SalaryAcctResultBO { // 薪资项目的字段类型(前端依据这个判断是否需要展示千分位) Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); map.putAll(dataTypeMap); - // TODO ?看一下如果不是回算这会不会有回算的东西? // 人员信息字段的值 Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); // 员工信息字段的字段类型 + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", e.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", e.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", e.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", e.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", e.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", e.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", e.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", e.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } // 主键id diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index cc67bfe05..d86941b8b 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryacct.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import lombok.AllArgsConstructor; @@ -112,6 +113,35 @@ public class SalaryAcctEmployeePO { @ElogTransform(name = "锁定状态") private Integer lockStatus; + /** + * 分部 + */ + @I18n + private String subcompanyName; + private Long subcompanyId; + /** + * 部门 + */ + @I18n + private String departmentName; + private Long departmentId; + /** + * 岗位 + */ + @I18n + private String jobtitleName; + private Long jobtitleId; + /** + * 职称 + */ + @I18n + private String jobcall; + private Long jobcallId; + /** + * 状态 + */ + private String status; + //--------条件---------- //主键id集合 diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index db4af3bf7..4beb41bfc 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -99,10 +99,16 @@ c.jobtitlename as jobtitleName, c.id as jobtitleId, e.companystartdate as companystartdate, - e.mobile as mobile + e.mobile as mobile, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + job.id as jobcallId, + job.name as jobcall from hrmresource e + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id + left join hrmjobcall job on e.jobcall=job.id WHERE e.status not in (7) and (e.accounttype is null or e.accounttype = 0) AND ( 1=2 @@ -139,14 +145,6 @@ #{status} - - - - - - - - ) ) @@ -187,14 +185,6 @@ #{status} - - - - - - - - ) ) diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index cc1dc0e33..76cb2dd0d 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -16,6 +16,15 @@ + + + + + + + + + @@ -54,7 +72,16 @@ INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) VALUES ( @@ -69,15 +96,32 @@ #{emp.deleteType}, #{emp.tenantKey}, #{emp.employeeType}, - #{emp.lockStatus} + #{emp.lockStatus}, + #{emp.subcompanyName}, + #{emp.subcompanyId}, + #{emp.departmentName}, + #{emp.departmentId}, + #{emp.jobtitleName}, + #{emp.jobtitleId}, + #{emp.jobcall}, + #{emp.jobcallId}, + #{emp.status} ) INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) - + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) select #{emp.salaryAcctRecordId,jdbcType=DOUBLE}, @@ -92,6 +136,15 @@ #{emp.tenantKey,jdbcType=VARCHAR}, #{emp.employeeType,jdbcType=INTEGER}, #{emp.lockStatus,jdbcType=INTEGER} + #{emp.subcompanyName,jdbcType=VARCHAR}, + #{emp.subcompanyId,jdbcType=DOUBLE}, + #{emp.departmentName,jdbcType=VARCHAR}, + #{emp.departmentId,jdbcType=DOUBLE}, + #{emp.jobtitleName,jdbcType=VARCHAR}, + #{emp.jobtitleId,jdbcType=DOUBLE}, + #{emp.jobcall,jdbcType=VARCHAR}, + #{emp.jobcallId,jdbcType=DOUBLE}, + #{emp.status,jdbcType=VARCHAR} from dual @@ -99,7 +152,16 @@ INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) VALUES ( #{emp.salaryAcctRecordId}, @@ -113,7 +175,16 @@ #{emp.deleteType}, #{emp.tenantKey}, #{emp.employeeType}, - #{emp.lockStatus} + #{emp.lockStatus}, + #{emp.subcompanyName}, + #{emp.subcompanyId}, + #{emp.departmentName}, + #{emp.departmentId}, + #{emp.jobtitleName}, + #{emp.jobtitleId}, + #{emp.jobcall}, + #{emp.jobcallId}, + #{emp.status} ) @@ -1274,7 +1345,7 @@ UPDATE hrsa_salary_acct_emp SET lock_status = #{lockStatus} WHERE delete_type = 0 - AND salary_acct_record_id =#{recordId} + AND salary_acct_record_id = #{recordId} diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 29635dc60..10c025dce 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -328,7 +328,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee // 从hrmresource和hrmresourcevirtual可能获取到重复人员数据,需要根据人员id去重 result = result.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(DataCollectionEmployee::getEmployeeId))), ArrayList::new)); - return SalaryI18nUtil.i18nList(result); + //部门分部等信息备份到核算人员表中,不进行多语言处理 + // return SalaryI18nUtil.i18nList(result); + return result; } /** From 81c768b7b9a0ecb2d49562d107139b4b438eabf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Jun 2024 15:28:31 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctEmployeeBO.java | 25 +++++- .../salaryacct/bo/SalaryAcctResultBO.java | 76 +++++++++++++------ .../param/SalaryAcctResultQueryParam.java | 5 ++ .../salaryacct/SalaryAcctEmployeeMapper.xml | 18 +++++ .../impl/SalaryAcctEmployeeServiceImpl.java | 4 +- .../impl/SalaryAcctExcelServiceImpl.java | 2 + .../impl/SalaryAcctResultServiceImpl.java | 2 +- .../SalaryComparisonResultServiceImpl.java | 4 +- .../service/impl/SalarySendServiceImpl.java | 30 ++++---- 9 files changed, 123 insertions(+), 43 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index dbbe56104..60058a59c 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -15,6 +15,7 @@ import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; @@ -121,9 +122,9 @@ public class SalaryAcctEmployeeBO { } public static List convert2Employee(Collection employee, - SalaryAcctRecordPO salaryAcctRecord, - List salaryArchiveTaxAgentData, - Long employeeId) { + SalaryAcctRecordPO salaryAcctRecord, + List salaryArchiveTaxAgentData, + Long employeeId) { if (CollectionUtils.isEmpty(employee)) { return Collections.emptyList(); } @@ -168,6 +169,24 @@ public class SalaryAcctEmployeeBO { return resultList; } + /** + * 核算人员信息替换实时信息 + * @param simpleEmployee + * @param acctEmployeePO + */ + public static void copyAcctEmp(DataCollectionEmployee simpleEmployee, SalaryAcctEmployeePO acctEmployeePO) { + simpleEmployee.setDepartmentId(acctEmployeePO.getDepartmentId()); + simpleEmployee.setDepartmentName(acctEmployeePO.getDepartmentName()); + simpleEmployee.setSubcompanyid(acctEmployeePO.getSubcompanyId()); + simpleEmployee.setSubcompanyName(acctEmployeePO.getSubcompanyName()); + simpleEmployee.setJobcallId(acctEmployeePO.getJobcallId()); + simpleEmployee.setJobcall(acctEmployeePO.getJobcall()); + simpleEmployee.setJobtitleId(acctEmployeePO.getJobtitleId()); + simpleEmployee.setJobtitleName(acctEmployeePO.getJobtitleName()); + simpleEmployee.setStatusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(acctEmployeePO.getStatus(), "1")))); + simpleEmployee.setStatus(acctEmployeePO.getStatus()); + } + public static List> partitionByEmployeeId(List salaryAcctEmployees) { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index d68ab0330..4989bd7f2 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -32,6 +32,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; +import weaver.general.Util; import java.lang.reflect.Field; import java.util.*; @@ -252,7 +253,7 @@ public class SalaryAcctResultBO { * @param taxAgents * @param consolidatedTaxSalaryAcctEmpIds * @param customBackCalcParameters - * @param isBackCalc + * @param dynamicEmpInfo * @return */ public static List> buildTableData(List salaryItems, @@ -264,7 +265,7 @@ public class SalaryAcctResultBO { Set consolidatedTaxSalaryAcctEmpIds, Map customParameters, Map customBackCalcParameters, - boolean isBackCalc) { + boolean dynamicEmpInfo) { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return Collections.emptyList(); } @@ -284,26 +285,30 @@ public class SalaryAcctResultBO { Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { // 员工信息字段的字段类型 - if ("departmentName".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentName", e.getDepartmentName()); - } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentId", e.getDepartmentId()); - } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { - map.put("subcompanyName", e.getSubcompanyName()); - } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcall", e.getJobcall()); - } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcallId", e.getJobcallId()); - } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleName", e.getJobtitleName()); - } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleId", e.getJobtitleId()); - } else if ("status".equals(salarySobEmpField.getFieldCode())) { - map.put("status", e.getStatus()); - } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { - map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); - } else { + if (dynamicEmpInfo) { map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } else { + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", e.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", e.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", e.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", e.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", e.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", e.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", e.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", e.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } @@ -349,7 +354,8 @@ public class SalaryAcctResultBO { List taxAgents, Map customParameters, Set consolidatedTaxSalaryAcctEmpIds, - Set includeSalaryItemIds) { + Set includeSalaryItemIds, + boolean dynamicEmpInfo) { if (CollectionUtils.isEmpty(simpleEmployees)) { return Collections.emptyList(); } @@ -365,8 +371,32 @@ public class SalaryAcctResultBO { // 员工信息字段的值 Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(salaryAcctEmployee.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); // 员工信息字段的字段类型 + if (dynamicEmpInfo) { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } else { + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", salaryAcctEmployee.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", salaryAcctEmployee.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", salaryAcctEmployee.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", salaryAcctEmployee.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", salaryAcctEmployee.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", salaryAcctEmployee.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", salaryAcctEmployee.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", salaryAcctEmployee.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployee.getStatus(), "1")))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } + } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } // 系统值 diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java index 8ebe19131..5f5749ac7 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java @@ -65,6 +65,11 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam { //薪资项目id private Collection salaryItemIds; + /** + * 是否需要实时人员信息 + */ + private boolean dynamicEmpInfo; + //其他条件 private List otherConditions; diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 76cb2dd0d..fd451cda5 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -1221,6 +1221,15 @@ + + + + + + + + + @@ -1240,6 +1249,15 @@ , t.tenant_key , t.employee_type , t.lock_status + , t.subcompany_name + , t.subcompany_id + , t.department_name + , t.department_id + , t.jobtitle_name + , t.jobtitle_id + , t.jobcall + , t.jobcall_id + , t.status diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 86ee45d37..984c5f100 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -112,7 +112,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public SalaryAcctEmployeePO getById(Long id) { - return getSalaryAcctEmployeeMapper().getById(id); + SalaryAcctEmployeePO po = getSalaryAcctEmployeeMapper().getById(id); + SalaryI18nUtil.i18n(po); + return po; } @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index d21fe8d56..bab6f297d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -389,6 +389,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // List headerList = new ArrayList<>(weaTableColumns); List headerList = new ArrayList<>(finalWeaTableColumns); // 查询薪资核算结果 + queryParam.setDynamicEmpInfo(true); List> resultMapList = getSalaryAcctResultService(user).listByParam(queryParam); @@ -757,6 +758,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc rows.add(headerList); if (param.getImportType() != null && param.getImportType().equals("true")) { // 需要导出现有数据,查询薪资核算结果 + param.setDynamicEmpInfo(true); List> resultMapList = getSalaryAcctResultService(user).listByParam(param); for (Map map : resultMapList) { List row = Lists.newArrayListWithExpectedSize(headerColumnGroup.size()); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index a1c7b9b90..1c59cceb4 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -496,7 +496,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe }); // 转换成薪资核算结果列表 - return SalaryAcctResultBO.buildTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, salaryAcctEmployeePOS, salaryAcctResultPOS, taxAgentPOS, salaryAcctEmployeeIds4ConsolidatedTax, customParameters, customBackCalcParameters, isBackCalc); + return SalaryAcctResultBO.buildTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, salaryAcctEmployeePOS, salaryAcctResultPOS, taxAgentPOS, salaryAcctEmployeeIds4ConsolidatedTax, customParameters, customBackCalcParameters, queryParam.isDynamicEmpInfo()); } diff --git a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java index 688eba134..2fd26a4b3 100644 --- a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java @@ -160,7 +160,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary // 查询薪资核算所用薪资账套的薪资项目副本 List salarySobItemPOS = salaryAcctConfig.getSalarySobItems(); // 过滤在账套中隐藏的薪资项目 - salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide()==null || po.getItemHide() == 0).collect(Collectors.toList()); + salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide() == 0).collect(Collectors.toList()); // 查询公式详情 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); @@ -230,7 +230,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary Set includeSalaryItemIds = Sets.newHashSetWithExpectedSize(salaryItemPOS.size()); // 转换成薪资核算线下对比结果 List> resultMapList = SalaryAcctResultBO.buildComparisonTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, - salaryAcctEmployeePOS, salaryAcctResultPOS, excelAcctResultPOS, taxAgentPOS, customParameters, salaryAcctEmployeeIds4ConsolidatedTax, includeSalaryItemIds); + salaryAcctEmployeePOS, salaryAcctResultPOS, excelAcctResultPOS, taxAgentPOS, customParameters, salaryAcctEmployeeIds4ConsolidatedTax, includeSalaryItemIds, queryParam.isDynamicEmpInfo()); // 系统值和线下值一致的人员 if (queryParam.isOnlyDiffEmployee()) { // 过滤系统值和线下值一致的薪资核算人员 diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 5e61fec2d..be430e0a4 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Validator; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -25,6 +26,7 @@ import com.engine.salary.entity.salaryBill.param.*; import com.engine.salary.entity.salaryBill.po.SalarySendInfoPO; import com.engine.salary.entity.salaryBill.po.SalarySendPO; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; @@ -564,13 +566,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // } // 获取薪资项目数据 - - - SalaryAcctResultPO acctPo = new SalaryAcctResultPO(); - acctPo.setDeleteType(0); - acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); - acctPo.setEmployeeId(currentEmployeeId); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(currentEmployeeId).build()); + if (CollUtil.isEmpty(salaryAcctResultPOS)) { + throw new SalaryRunTimeException("薪资核算结果不存在!"); + } encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); @@ -647,6 +646,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); + SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); @@ -700,6 +701,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return map; } + + private Date getLimitMonth() { //工资单时效性 salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); @@ -941,7 +944,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .jobtitleName(simpleEmployee.getJobtitleName()) .jobtitleId(simpleEmployee.getJobtitleId()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(simpleEmployee.getStatus())).getDefaultLabel()) + .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(),"1"))).getDefaultLabel()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) .workcode(StringUtils.isEmpty(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()) @@ -1889,11 +1892,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 判断是否是补发 boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType()); - SalaryAcctResultPO acctPo = new SalaryAcctResultPO(); - acctPo.setDeleteType(0); - acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); - acctPo.setEmployeeId(recipient); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(recipient).build()); + if (CollUtil.isEmpty(salaryAcctResultPOS)) { + throw new SalaryRunTimeException("薪资核算结果不存在!"); + } encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); @@ -1969,6 +1971,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); + SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); From 28536476d3ec8f349c40516c294d243f7b01a378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 21 Jun 2024 09:16:44 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 116589d50..86aac0d39 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.14.4.2406.02 +version=2.14.5.2406.03 openFormulaForcedEditing=false \ No newline at end of file From 6d3af9d4ed4907bb069566584909eeba03011c93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 21 Jun 2024 14:14:57 +0800 Subject: [PATCH 04/15] wiki --- resource/wiki/delSalarySQL.bat | 1 + resource/wiki/获取指定人员工作日天数.txt | 65 ++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 resource/wiki/delSalarySQL.bat create mode 100644 resource/wiki/获取指定人员工作日天数.txt diff --git a/resource/wiki/delSalarySQL.bat b/resource/wiki/delSalarySQL.bat new file mode 100644 index 000000000..6c8f1d6fc --- /dev/null +++ b/resource/wiki/delSalarySQL.bat @@ -0,0 +1 @@ +del sql202205100201.sql sql202205100402.sql sql202205130903.sql sql202205200203.sql sql202205310203.sql sql202206071403.sql sql202206090403.sql sql202206141003.sql sql202206160500.sql sql202206230403.sql sql202207110803.sql sql202207120303.sql sql202207210203.sql sql202208051103.sql sql202208080403.sql sql202208240403.sql sql202208240503.sql sql202210080203.sql sql202210080403.sql sql202210170203.sql sql202210170303.sql sql202211090103.sql sql202211090301.sql sql202211090402.sql sql202211170503.sql sql202212080903.sql sql202212081003.sql sql202212230103.sql sql202301310403.sql sql202302060801.sql sql202302060902.sql sql202302090303.sql sql202302200403.sql sql202303130101.sql sql202303130202.sql sql202303150403.sql sql202304040503.sql sql202304260103.sql sql202304270203.sql sql202304270303.sql sql202304270501.sql sql202305050302.sql sql202305170903.sql sql202306020403.sql sql202306020603.sql sql202306080103.sql sql202306200203.sql sql202306260103.sql sql202307170403.sql sql202307180603.sql sql202307200603.sql sql202308080403.sql sql202308080503.sql sql202308090203.sql sql202308170403.sql sql202309210203.sql sql202310130403.sql sql202310250103.sql sql202311070403.sql sql202311080603.sql sql202311150103.sql sql202312130203.sql sql202401080103.sql sql202401230403.sql sql202401300303.sql sql202402190103.sql sql202402280703.sql sql202403150103.sql sql202404010103.sql diff --git a/resource/wiki/获取指定人员工作日天数.txt b/resource/wiki/获取指定人员工作日天数.txt new file mode 100644 index 000000000..19515b8c5 --- /dev/null +++ b/resource/wiki/获取指定人员工作日天数.txt @@ -0,0 +1,65 @@ + /** + * 返回指定日志范围内的工作日天数 + * @param beginDate 开始日期 + * @param endDate 结束日期 + * @param userid 人员ID + * @return + */ + public String getWorkDays(String beginDate, String endDate, int userid) { + BaseBean bean = new BaseBean(); + //设置日期格式 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + //起始日期 + if (beginDate == null || beginDate.length() == 0) { + beginDate = bean.getPropValue("scheduleWorkDayForFormula", "fromDate"); + beginDate = beginDate == null ? "" : beginDate.trim(); + if (beginDate.length() == 0) { + beginDate = df.format(new Date()); + } + } + + //截止日期 + if (endDate == null || endDate.length() == 0) { + endDate = bean.getPropValue("scheduleWorkDayForFormula", "endDate"); + endDate = endDate == null ? "" : endDate.trim(); + if (endDate.length() == 0) { + endDate = df.format(new Date()); + } + } + + boolean isBig = false; + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date begin = sdf.parse(beginDate); + Date end = sdf.parse(endDate); + if (begin.compareTo(end) > 0) { + String temp = beginDate; + beginDate = endDate; + endDate = temp; + isBig = true; + } + } catch (Exception e) { + bean.writeLog("ExcelFormulaWorkday解析日期报错", e); + } + + int workDayCount = 0; + User user = new User(userid); + HrmScheduleManager manager = new HrmScheduleManager(user); + Map mapWorkday = manager.isWorkday(beginDate, endDate, manager.getSubCompanyId()); + if (mapWorkday != null && mapWorkday.size() > 0) { + Iterator itr = mapWorkday.keySet().iterator(); + while (itr.hasNext()) { + String tempDate = itr.next(); + Boolean isWorkDay = mapWorkday.get(tempDate); + if (isWorkDay) { + if (isBig) { + workDayCount--; + } else { + workDayCount++; + } + } + } + } + return workDayCount+""; + } \ No newline at end of file From 63c747796672ff27403a31dcb58aba9382192422 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 26 Jun 2024 10:35:05 +0800 Subject: [PATCH 05/15] =?UTF-8?q?1=E3=80=81=E8=96=AA=E8=B5=84=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E5=AF=BC=E5=87=BA=E6=A0=B9=E6=8D=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=88=97=E5=AE=9A=E5=88=B6=E5=AF=BC=E5=87=BA=202=E3=80=81?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88=20=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=94=AF=E6=8C=81=E4=B8=AA=E7=A8=8E=E6=89=A3?= =?UTF-8?q?=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA=E5=A4=9A=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryArchiveQueryParam.java | 2 ++ .../mapper/archive/SalaryArchiveMapper.xml | 27 +++++++++++++++++++ ...aryStatisticsEmployeeSalaryQueryParam.java | 3 +++ .../SalaryStatisticsEmployeeWrapper.java | 10 +++++++ 4 files changed, 42 insertions(+) diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java index 505ce3264..fd36884d3 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java @@ -36,6 +36,8 @@ public class SalaryArchiveQueryParam extends BaseQueryParam { //个税扣缴义务人id private Long taxAgentId; + + private List taxAgentIds; private String taxAgentName; //分部id diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index a1fa6af6b..951429b32 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -136,6 +136,13 @@ AND e.workcode like CONCAT('%',#{param.workcode},'%') + + + AND t.tax_agent_id IN + + #{taxAgentId} + + AND c.id IN @@ -232,6 +239,13 @@ AND e.workcode like '%'||#{param.workcode}||'%' + + + AND t.tax_agent_id IN + + #{taxAgentId} + + AND c.id IN @@ -326,6 +340,13 @@ AND e.workcode like '%'+#{param.workcode}+'%' + + + AND t.tax_agent_id IN + + #{taxAgentId} + + AND c.id IN @@ -430,6 +451,12 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + AND e.username like CONCAT('%',#{param.username},'%') diff --git a/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java b/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java index 13108c0be..a1dbab11b 100644 --- a/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java +++ b/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java @@ -47,4 +47,7 @@ public class SalaryStatisticsEmployeeSalaryQueryParam extends BaseQueryParam { // 部分导出id private List ids; + + // 导出时显示列定制信息 + List columns; } \ No newline at end of file diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 1350df88a..e3f794637 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -20,6 +20,7 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQuery import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.report.service.impl.SalaryStatisticsEmployeeServiceImpl; import com.engine.salary.report.util.ReportDataUtil; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelUtilPlus; import com.engine.salary.util.page.PageInfo; @@ -264,6 +265,15 @@ public class SalaryStatisticsEmployeeWrapper extends Service { List> resultList = ((PageInfo>) resultMap.get("pageInfo")).getList(); Map countResult = (Map)resultMap.get("countResult"); + Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); + List finalColumns = new ArrayList<>(); + queryParam.getColumns().forEach(col -> { + WeaTableColumn column = columnMap.get(col); + if (column != null) { + finalColumns.add(column); + } + }); + columns = finalColumns; List> rowList = new ArrayList<>(); // 表头 rowList.add(columns.stream().map(WeaTableColumn::getText).collect(Collectors.toList())); From 933fc8ae65e2e59199090a4d742b9aa4bd37335e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 26 Jun 2024 11:33:12 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=AC=A1=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/EmployBiz.java | 17 +++++++++++++++++ .../mapper/datacollection/EmployMapper.java | 7 +++++++ .../mapper/datacollection/EmployMapper.xml | 19 +++++++++++++++++++ .../impl/SalaryStatisticsPushServiceImpl.java | 11 +++++++---- .../salary/service/SalaryEmployeeService.java | 8 ++++++++ .../impl/SalaryEmployeeServiceImpl.java | 17 +++++++++++++++++ 6 files changed, 75 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/biz/EmployBiz.java b/src/com/engine/salary/biz/EmployBiz.java index ccfe89ef0..8f731c242 100644 --- a/src/com/engine/salary/biz/EmployBiz.java +++ b/src/com/engine/salary/biz/EmployBiz.java @@ -61,6 +61,23 @@ public class EmployBiz extends BaseBean { } } + public List getEmployeeByIdsIncludeAccountType(List list) { + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + List dataList = new ArrayList<>(); + EmployMapper mapper = sqlSession.getMapper(EmployMapper.class); + List> partition = Lists.partition(list, 1000); + for (List longs : partition) { + dataList.addAll(mapper.getEmployeeByIdsIncludeAccountType(longs)); + } + return dataList; + } finally { + sqlSession.close(); + } + } public List getEmployeeByIdsAll(List list) { if (CollectionUtils.isEmpty(list)) { diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index c49fb2404..238e8d74f 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -35,6 +35,13 @@ public interface EmployMapper { */ List getEmployeeByIds(@Param("collection") List ids); + /** + * 单表查询 包括次账号 + * @param ids + * @return + */ + List getEmployeeByIdsIncludeAccountType(@Param("collection") List ids); + /** * 多表联查 * @param ids diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index db4af3bf7..9cb1ccf90 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -36,6 +36,25 @@ + + From 95b9f5452a4e891dfb02eea5a8c79a9a57b9e29f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 8 Jul 2024 10:20:21 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=AF=BC=E5=87=BAfix=E5=A4=9A=E9=80=89=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/web/SalaryArchiveController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 6b6e59ae1..0fbe3797c 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -16,6 +16,7 @@ import com.engine.salary.wrapper.SalaryArchiveWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -486,6 +487,11 @@ public class SalaryArchiveController { if (StringUtils.isNotBlank(taxAgentId)) { param.setTaxAgentId(Long.valueOf(taxAgentId)); } + String taxAgentIdsStr = request.getParameter("taxAgentIds"); + if (StringUtils.isNotBlank(taxAgentIdsStr)) { + List taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); + param.setTaxAgentIds(taxAgentIds); + } String departmentIds = request.getParameter("departmentIds"); if (StringUtils.isNotBlank(departmentIds)) { param.setDepartmentIds(Arrays.stream(departmentIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); From 7ef229dfde4f1c1137886e5f6da50ff6b243d8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 10 Jul 2024 10:43:11 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E8=B0=83=E5=B7=AEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SICompensationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SICompensationServiceImpl.java b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java index 25bf127a0..a6c4cb5d8 100644 --- a/src/com/engine/salary/service/impl/SICompensationServiceImpl.java +++ b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java @@ -470,7 +470,7 @@ public class SICompensationServiceImpl extends Service implements SICompensation //记录操作日志 InsuranceAccountBatchPO targetPO = getInsuranceAccountBatchMapper().getByBillMonth(insuranceAccountDetailPO.getBillMonth(), insuranceAccountDetailPO.getPaymentOrganization()); TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(insuranceAccountDetailPO.getPaymentOrganization()); - DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(insuranceAccountDetailPO.getEmployeeId()); + DataCollectionEmployee empInfo = getSalaryEmployeeService(user).getEmployeeById(insuranceAccountDetailPO.getEmployeeId()); LoggerContext loggerContext = new LoggerContext(); loggerContext.setUser(user); loggerContext.setTargetId(String.valueOf(targetPO.getId())); From a6f02082d84b644246db7dde098215bab3869836 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 10 Jul 2024 15:01:49 +0800 Subject: [PATCH 15/15] =?UTF-8?q?fix=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E9=9D=9E=E7=B3=BB=E7=BB=9F=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=A9=BA=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index f95fb8244..56d7898c6 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -3699,7 +3699,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); InsuranceAccountBatchPO targetPO = getInsuranceAccountBatchMapper().getByBillMonth(insuranceAccountDetailPO.getBillMonth(), insuranceAccountDetailPO.getPaymentOrganization()); TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization()); - DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(insuranceAccountDetailPO.getEmployeeId()); + DataCollectionEmployee empInfo = getSalaryEmployeeService(user).getEmployeeById(insuranceAccountDetailPO.getEmployeeId()); LoggerContext loggerContext = new LoggerContext(); loggerContext.setUser(user); loggerContext.setTargetId(String.valueOf(targetPO.getId()));