diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml new file mode 100644 index 000000000..cc4c607b8 --- /dev/null +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resource/sqlupgrade/DM/sql202409240201.sql b/resource/sqlupgrade/DM/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/DM/sql202409240302.sql b/resource/sqlupgrade/DM/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/DM/sql202409240403.sql b/resource/sqlupgrade/DM/sql202409240403.sql new file mode 100644 index 000000000..10b2b4813 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240403.sql @@ -0,0 +1,113 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202409240201.sql b/resource/sqlupgrade/GS/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/GS/sql202409240302.sql b/resource/sqlupgrade/GS/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/GS/sql202409240403.sql b/resource/sqlupgrade/GS/sql202409240403.sql new file mode 100644 index 000000000..10b2b4813 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240403.sql @@ -0,0 +1,113 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202409240201.sql b/resource/sqlupgrade/JC/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/JC/sql202409240302.sql b/resource/sqlupgrade/JC/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/JC/sql202409240403.sql b/resource/sqlupgrade/JC/sql202409240403.sql new file mode 100644 index 000000000..10b2b4813 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240403.sql @@ -0,0 +1,113 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202409240201.sql b/resource/sqlupgrade/Mysql/sql202409240201.sql new file mode 100644 index 000000000..b81eb2e8d --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) +; +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=char_length(labelname) ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=char_length(labelname) )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 +; diff --git a/resource/sqlupgrade/Mysql/sql202409240302.sql b/resource/sqlupgrade/Mysql/sql202409240302.sql new file mode 100644 index 000000000..8b215461e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +; +Delete from LeftMenuConfig where infoid=100220 +; +call LMConfig_U_ByInfoInsert (2,100181,0) +; +call LMInfo_Insert (100220,548105,'','',2,100181,5,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202409240403.sql b/resource/sqlupgrade/Mysql/sql202409240403.sql new file mode 100644 index 000000000..17c461f3c --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240403.sql @@ -0,0 +1,120 @@ +CREATE TABLE hrsa_auth_data +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + link int(0) NOT NULL, + target_type int(0) NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + + +CREATE TABLE hrsa_auth_member +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + target_type int(0) NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_opt +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role +( + id bigint(0) NOT NULL, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role_data +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + employee_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + employee_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_resource +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + target_type int(0) NOT NULL, + target bigint(0) NOT NULL, + target_name varchar(255), + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_sob_tax_link +( + id bigint(0) NOT NULL, + sob_id bigint(0) NOT NULL, + tax_agent_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) , + PRIMARY KEY (id) USING BTREE +) ; diff --git a/resource/sqlupgrade/Mysql/sql202411190103.sql b/resource/sqlupgrade/Mysql/sql202411190103.sql new file mode 100644 index 000000000..9ceb2c5b9 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202411190103.sql @@ -0,0 +1,35 @@ +CREATE TABLE hrsa_push_setting +( + id bigint(0) NOT NULL, + name varchar(200), + able int(0), + salary_sob_ids varchar(2000), + mode_id int(0), + mode_name varchar(200), + table_name varchar(200), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_push_setting_item +( + id bigint(0) NOT NULL, + setting_id bigint(0), + source varchar(100), + item varchar(200), + item_name varchar(200), + field_name varchar(200), + field_type int(0), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + diff --git a/resource/sqlupgrade/Oracle/sql202409240201.sql b/resource/sqlupgrade/Oracle/sql202409240201.sql new file mode 100644 index 000000000..83a4826ec --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) +/ +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409240302.sql b/resource/sqlupgrade/Oracle/sql202409240302.sql new file mode 100644 index 000000000..8435e8635 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +/ +Delete from LeftMenuConfig where infoid=100220 +/ +call LMConfig_U_ByInfoInsert (2,100181,0) +/ +call LMInfo_Insert (100220,548105,'','',2,100181,5,2) +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409240403.sql b/resource/sqlupgrade/Oracle/sql202409240403.sql new file mode 100644 index 000000000..cf2f25c2e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240403.sql @@ -0,0 +1,120 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240201.sql b/resource/sqlupgrade/PG/sql202409240201.sql new file mode 100644 index 000000000..42589c50b --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) ; +/ +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=octet_length(labelname) ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=octet_length(labelname) )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240302.sql b/resource/sqlupgrade/PG/sql202409240302.sql new file mode 100644 index 000000000..755116704 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +; +Delete from LeftMenuConfig where infoid=100220 +; +select LMConfig_U_ByInfoInsert (2,100181,0) +; +select LMInfo_Insert (100220,548105,'','',2,100181,5,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240403.sql b/resource/sqlupgrade/PG/sql202409240403.sql new file mode 100644 index 000000000..1e8fb2d15 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240403.sql @@ -0,0 +1,120 @@ +CREATE TABLE hrsa_auth_data +( + id bigint NOT NULL, + role_id bigint NOT NULL, + link int NOT NULL, + target_type int NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + + +CREATE TABLE hrsa_auth_member +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_opt +( + id bigint NOT NULL, + role_id bigint NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role +( + id bigint NOT NULL, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role_data +( + id bigint NOT NULL, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint NOT NULL, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_resource +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target bigint NOT NULL, + target_name varchar(255), + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_sob_tax_link +( + id bigint NOT NULL, + sob_id bigint NOT NULL, + tax_agent_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) , + PRIMARY KEY (id) +) ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240201.sql b/resource/sqlupgrade/SQLServer/sql202409240201.sql new file mode 100644 index 000000000..1aa307c31 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) +GO +insert into HtmlLabelIndex(id,indexdesc) select top 1 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or labelname like '%[吖-座]%' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and labelname not like '%[吖-座]%' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240302.sql b/resource/sqlupgrade/SQLServer/sql202409240302.sql new file mode 100644 index 000000000..718a8538f --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +GO +Delete from LeftMenuConfig where infoid=100220 +GO +EXECUTE LMConfig_U_ByInfoInsert 2,100181,0 +GO +EXECUTE LMInfo_Insert 100220,548105,'','',2,100181,5,2 +GO +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240403.sql b/resource/sqlupgrade/SQLServer/sql202409240403.sql new file mode 100644 index 000000000..6edd92d19 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240403.sql @@ -0,0 +1,117 @@ +CREATE TABLE hrsa_auth_data +( + id bigint primary key, + role_id bigint NOT NULL, + link int NOT NULL, + target_type int NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_member +( + id bigint primary key, + role_id bigint NOT NULL, + target_type int NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_opt +( + id bigint primary key, + role_id bigint NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_role +( + id bigint primary key, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + + +CREATE TABLE hrsa_auth_role_data +( + id bigint primary key, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint primary key, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + +CREATE TABLE hrsa_auth_resource +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target bigint NOT NULL, + target_name varchar(255), + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + +CREATE TABLE hrsa_sob_tax_link +( + id bigint NOT NULL, + sob_id bigint NOT NULL, + tax_agent_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202409240201.sql b/resource/sqlupgrade/ST/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'业务线管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'业务线管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'業務線管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/ST/sql202409240302.sql b/resource/sqlupgrade/ST/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/ST/sql202409240403.sql b/resource/sqlupgrade/ST/sql202409240403.sql new file mode 100644 index 000000000..10b2b4813 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240403.sql @@ -0,0 +1,113 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/wiki/甯哥敤鏌ヨ.md b/resource/wiki/甯哥敤鏌ヨ.md index 637ebc08f..1d72b1e99 100644 --- a/resource/wiki/甯哥敤鏌ヨ.md +++ b/resource/wiki/甯哥敤鏌ヨ.md @@ -20,10 +20,27 @@ where item.name = '宸ヨ祫钖噾鍚堣' # 鑾峰彇妗f淇℃伅 - select i.item_value from hrsa_salary_archive_item i - left join hrsa_salary_archive a on a.id = i.salary_archive_id - left join hrsa_salary_item c on c.id=i.salary_item_id - left join hrsa_tax_agent t on a.tax_agent_id=t.id - where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 - and a.employee_id=浜哄憳id and t.name=鎵g即涔夊姟浜哄悕绉 - and c.name='鍩烘湰宸ヨ祫' order by effective_time desc \ No newline at end of file +select i.item_value from hrsa_salary_archive_item i +left join hrsa_salary_archive a on a.id = i.salary_archive_id +left join hrsa_salary_item c on c.id=i.salary_item_id +left join hrsa_tax_agent t on a.tax_agent_id=t.id +where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 +and a.employee_id=浜哄憳id and t.name=鎵g即涔夊姟浜哄悕绉 + and c.name='鍩烘湰宸ヨ祫' order by effective_time desc + + +# 鍒犻櫎绯荤粺椤圭洰 +UPDATE set hrsa_sys_salary_item where delete_type =3 where delete_type =0; + +update hrsa_salary_sob_default_item set delete_type =3 where delete_type =0; + + +update hrsa_salary_sob_item set delete_type= 3 where delete_type =0 and salary_item_id in (select id from hrsa_salary_item where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal') +); + +UPDATE hrsa_salary_item set delete_type = 3 where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal'); + + +# 寮鍚郴缁熺畻绋 +update hrsa_salary_sys_conf set conf_value = '1' where conf_key = 'taxDeclarationFunction' + diff --git a/resource/wiki/钖叕杩樺師鑴氭湰.sql b/resource/wiki/钖叕杩樺師鑴氭湰.sql index cf29ff247..62e7bae3c 100644 --- a/resource/wiki/钖叕杩樺師鑴氭湰.sql +++ b/resource/wiki/钖叕杩樺師鑴氭湰.sql @@ -64,8 +64,8 @@ delete from hrsa_salary_archive_item where 1=1 ; delete from hrsa_salary_archive_tax_agent where 1=1 ; -delete from hrsa_salary_item where 1=1 -; +--delete from hrsa_salary_item where 1=1; + delete from hrsa_salary_send where 1=1 ; delete from hrsa_salary_send_info where 1=1 diff --git a/src/com/api/salary/web/AuthController.java b/src/com/api/salary/web/AuthController.java new file mode 100644 index 000000000..3a2c0374c --- /dev/null +++ b/src/com/api/salary/web/AuthController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/auth") +public class AuthController extends com.engine.salary.web.AuthController { + +} diff --git a/src/com/api/salary/web/PushController.java b/src/com/api/salary/web/PushController.java new file mode 100644 index 000000000..854a3b9b7 --- /dev/null +++ b/src/com/api/salary/web/PushController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/push") +public class PushController extends com.engine.salary.web.PushController{ + +} diff --git a/src/com/engine/salary/annotation/Auth.java b/src/com/engine/salary/annotation/Auth.java new file mode 100644 index 000000000..78cc19097 --- /dev/null +++ b/src/com/engine/salary/annotation/Auth.java @@ -0,0 +1,29 @@ +package com.engine.salary.annotation; + +import com.engine.salary.enums.auth.AuthCheckTypeEnum; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 鏉冮檺楠岃瘉瀛楁 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Auth { + String page(); + + AuthCheckTypeEnum checkType() default AuthCheckTypeEnum.TAX_EMP; + + String taxAgentIdField() default "taxAgentId"; + String employeeIdField() default "employeeId"; + String sobIdField() default "salarySobId"; + String optsField() default "opts"; +} diff --git a/src/com/engine/salary/annotation/AuthField.java b/src/com/engine/salary/annotation/AuthField.java new file mode 100644 index 000000000..b51cd44f3 --- /dev/null +++ b/src/com/engine/salary/annotation/AuthField.java @@ -0,0 +1,22 @@ +package com.engine.salary.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 鏉冮檺楠岃瘉瀛楁 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AuthField { + + String fieldType(); + +} diff --git a/src/com/engine/salary/annotation/AuthOpt.java b/src/com/engine/salary/annotation/AuthOpt.java new file mode 100644 index 000000000..e4ffcb499 --- /dev/null +++ b/src/com/engine/salary/annotation/AuthOpt.java @@ -0,0 +1,20 @@ +package com.engine.salary.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 鏉冮檺楠岃瘉瀛楁 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AuthOpt { + +} diff --git a/src/com/engine/salary/biz/AddUpDeductionBiz.java b/src/com/engine/salary/biz/AddUpDeductionBiz.java index 14ba5933c..3e7f8330c 100644 --- a/src/com/engine/salary/biz/AddUpDeductionBiz.java +++ b/src/com/engine/salary/biz/AddUpDeductionBiz.java @@ -96,7 +96,9 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List addUpDeductionRecordStrDTOS = mapper.recordList(param); - return encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); + encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(addUpDeductionRecordStrDTOS); + return addUpDeductionRecordStrDTOS; } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/biz/AddUpSituationBiz.java b/src/com/engine/salary/biz/AddUpSituationBiz.java index 68515ff23..41068ef88 100644 --- a/src/com/engine/salary/biz/AddUpSituationBiz.java +++ b/src/com/engine/salary/biz/AddUpSituationBiz.java @@ -2,11 +2,9 @@ package com.engine.salary.biz; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; -import com.engine.salary.entity.datacollection.dto.AddUpSituationDTO; import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; import com.engine.salary.entity.datacollection.param.AddUpSituationQueryParam; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; -import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; @@ -20,23 +18,6 @@ public class AddUpSituationBiz extends BaseBean { private EncryptUtil encryptUtil = new EncryptUtil(); - /** - * 鍏宠仈鏌ヨ鏌ヨ鍒楄〃 - * - * @param param - * @return - */ - public List list(AddUpSituationQueryParam param) { - SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); - try { - AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); - List list = mapper.list(param); - encryptUtil.decryptList(list, AddUpSituationDTO.class); - return SalaryI18nUtil.i18nList(list); - } finally { - sqlSession.close(); - } - } /** * 鏉′欢鏌ヨ diff --git a/src/com/engine/salary/common/BaseQueryParam.java b/src/com/engine/salary/common/BaseQueryParam.java index dd9a8bc3c..703231be8 100644 --- a/src/com/engine/salary/common/BaseQueryParam.java +++ b/src/com/engine/salary/common/BaseQueryParam.java @@ -1,5 +1,6 @@ package com.engine.salary.common; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.sys.entity.vo.OrderRuleVO; import lombok.AllArgsConstructor; import lombok.Data; @@ -24,4 +25,9 @@ public class BaseQueryParam { * 鎺掑簭瑙勫垯 */ private OrderRuleVO orderRule; + + /** + * 鏁版嵁杩囨护绾у埆 + */ + private AuthFilterTypeEnum filterType ; } diff --git a/src/com/engine/salary/config/SalaryElogConfig.java b/src/com/engine/salary/config/SalaryElogConfig.java index 7d9f79321..909fdb9c4 100644 --- a/src/com/engine/salary/config/SalaryElogConfig.java +++ b/src/com/engine/salary/config/SalaryElogConfig.java @@ -317,4 +317,9 @@ public class SalaryElogConfig { * @return */ public static LoggerTemplate salaryStatReportLoggerTemplate = LoggerTemplateBuilder.build("hrsa", "statreport"); + + /** + * 涓氬姟绾 + */ + public static LoggerTemplate authLinkLoggerTemplate = LoggerTemplateBuilder.build("hrsa", "authlink"); } diff --git a/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java new file mode 100644 index 000000000..cd3d3600b --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java @@ -0,0 +1,38 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.auth.DataLinkEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthDataDTO { + + private Long id; + + /** + * 杩炴帴绗︼紝浜ゃ佸苟銆佽ˉ + */ + @TableTitle(title = "杩炴帴",dataIndex = "linkName",key = "linkName") + private String linkName; + + private DataLinkEnum link; + + @TableTitle(title = "瀵硅薄绫诲瀷",dataIndex = "targetTypeName",key = "targetTypeName") + private String targetTypeName; + private DataTargetTypeEnum targetType; + + @TableTitle(title = "瀵硅薄",dataIndex = "targetName",key = "targetName") + private String targetName; + private String target; + + @TableTitle(title = "鎵规",dataIndex = "sortedIndex",key = "sortedIndex") + private Integer sortedIndex; + +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java b/src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java new file mode 100644 index 000000000..1861a0251 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java @@ -0,0 +1,18 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthLimitDTO { + private Long taxAgentId; + + private List roleLimits; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java new file mode 100644 index 000000000..fe0b24e98 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthMemberDTO { + + private Long id; + + @TableTitle(title = "瀵硅薄绫诲瀷",dataIndex = "targetTypeName",key = "targetTypeName") + private String targetTypeName; + private MemberTargetTypeEnum targetType; + + @TableTitle(title = "瀵硅薄",dataIndex = "targetName",key = "targetName") + private String targetName; + private String target; + +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java new file mode 100644 index 000000000..2a71e4129 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java @@ -0,0 +1,77 @@ +package com.engine.salary.entity.auth.dto; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamImplicit; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@XStreamAlias("config") +public class AuthOptDTO { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "module") + private List modules; + + @Data + public static class Module { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "page") + private List pages; + + @Data + public static class Page { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamAlias("limit") + @XStreamAsAttribute + private String limit; + + @XStreamImplicit(itemFieldName = "opt") + private List opts; + + @Data + public static class Opt { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamAlias("able") + @XStreamAsAttribute + private boolean able; + } + } + } +} + diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java new file mode 100644 index 000000000..2dac34f8f --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java @@ -0,0 +1,53 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 瑙掕壊 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleDTO { + + private Long id; + + @TableTitle(title = "涓氬姟绾", dataIndex = "name", key = "name") + private String name; + + @TableTitle(title = "鎻忚堪", dataIndex = "description", key = "description") + private String description; + + /** + * 鎵g即涔夊姟浜鸿祫婧 + */ + private List taxAgentIds; + + /** + * 璐﹀璧勬簮 + */ + private List sobIds; + + @TableTitle(title = "璧勬簮", dataIndex = "resources", key = "resources") + private Integer resources; + + @TableTitle(title = "鎴愬憳", dataIndex = "members", key = "members") + private Integer members; + + @TableTitle(title = "鏉冮檺", dataIndex = "opts", key = "opts") + private Integer opts; + + @TableTitle(title = "鏁版嵁", dataIndex = "datas", key = "datas") + private Integer datas; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java new file mode 100644 index 000000000..58ca3cc21 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleDataDTO { + + private Long id; + + @TableTitle(title = "濮撳悕",dataIndex = "username",key = "username") + private String username; + + @TableTitle(title = "宸ュ彿",dataIndex = "workCode",key = "workCode") + private String workCode; + + + @I18n + @TableTitle(title = "閮ㄩ棬",dataIndex = "departmentName",key = "departmentName") + private String departmentName; + + @I18n + @TableTitle(title = "宀椾綅",dataIndex = "jobtitleName",key = "jobtitleName") + private String jobtitleName; +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java new file mode 100644 index 000000000..981bf9b0d --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleEmpDTO { + + private Long id; + + @TableTitle(title = "濮撳悕",dataIndex = "username",key = "username") + private String username; + + @TableTitle(title = "宸ュ彿",dataIndex = "workcode",key = "workcode") + private String workCode; + + + @I18n + @TableTitle(title = "閮ㄩ棬",dataIndex = "departmentName",key = "departmentName") + private String departmentName; + + @I18n + @TableTitle(title = "宀椾綅",dataIndex = "jobtitleName",key = "jobtitleName") + private String jobtitleName; +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java b/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java new file mode 100644 index 000000000..9583bce12 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java @@ -0,0 +1,62 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthTreeDTO { + private Long roleEmpId; + + private List roles; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Role { + private Long roleId; + + private String roleName; + + private List resources; + private List opts; + private List datas; + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Resource { + private Long resourceId; + private String resourceName; + private String resourceType; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Opt { + private Long optId; + private String page; + private String opt; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Data { + private Long dataId; + private Long employeeId; + } + } +} + diff --git a/src/com/engine/salary/entity/auth/dto/EmpOpt.java b/src/com/engine/salary/entity/auth/dto/EmpOpt.java new file mode 100644 index 000000000..d85e24fe4 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/EmpOpt.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EmpOpt { + private Long employeeId; + + private Set opts; +} + diff --git a/src/com/engine/salary/entity/auth/dto/Opt.java b/src/com/engine/salary/entity/auth/dto/Opt.java new file mode 100644 index 000000000..f9171e390 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/Opt.java @@ -0,0 +1,15 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Opt { + private String opt; +} + diff --git a/src/com/engine/salary/entity/auth/dto/PermissionDTO.java b/src/com/engine/salary/entity/auth/dto/PermissionDTO.java new file mode 100644 index 000000000..eb13937eb --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/PermissionDTO.java @@ -0,0 +1,5 @@ +package com.engine.salary.entity.auth.dto; + +public class PermissionDTO { + +} diff --git a/src/com/engine/salary/entity/auth/dto/RoleLimit.java b/src/com/engine/salary/entity/auth/dto/RoleLimit.java new file mode 100644 index 000000000..bad2017a1 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/RoleLimit.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RoleLimit { + private Long roleId; + + private List sobIds; +} + diff --git a/src/com/engine/salary/entity/auth/dto/SobOptAuth.java b/src/com/engine/salary/entity/auth/dto/SobOptAuth.java new file mode 100644 index 000000000..cbae0bfd7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/SobOptAuth.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SobOptAuth { + private Long sobId; + + private Set opts; +} + diff --git a/src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java b/src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java new file mode 100644 index 000000000..fffb519db --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxEmpOptAuth { + private Long taxAgentId; + + private List emps; +} + diff --git a/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java b/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java new file mode 100644 index 000000000..57b4765c7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxOptAuth { + private Long taxAgentId; + + private Set opts; +} + diff --git a/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java new file mode 100644 index 000000000..28f53f712 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java @@ -0,0 +1,20 @@ +package com.engine.salary.entity.auth.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthDataQueryParam extends BaseQueryParam { + + private Long roleId; + + private String username; + +} diff --git a/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java new file mode 100644 index 000000000..86784082f --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java @@ -0,0 +1,41 @@ +package com.engine.salary.entity.auth.param; + + +import com.engine.salary.enums.auth.DataLinkEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.util.valid.Modify; +import com.engine.salary.util.valid.ModifyTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 鏁版嵁 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthDataSaveParam { + private Long id; + + private Long roleId; + + private DataLinkEnum link; + + private DataTargetTypeEnum targetType; + + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) + private String target; + + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) + private String targetName; + + private Integer sortedIndex; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java new file mode 100644 index 000000000..e540a1590 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java @@ -0,0 +1,20 @@ +package com.engine.salary.entity.auth.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthMemberQueryParam extends BaseQueryParam { + + private Long roleId; + + private String username; + +} diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java new file mode 100644 index 000000000..9486d1e96 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -0,0 +1,29 @@ +package com.engine.salary.entity.auth.param; + + +import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.util.valid.Modify; +import com.engine.salary.util.valid.ModifyTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthMemberSaveParam { + + private Long id; + + private Long roleId; + + private MemberTargetTypeEnum targetType; + + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) + private String target; + + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) + private String targetName; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java new file mode 100644 index 000000000..c720fedcc --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthOptSaveParam { + private Long roleId; + private List opts; + + @Data + public static class Opt { + + private String page; + + private String opt; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java new file mode 100644 index 000000000..ab71eb23a --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java @@ -0,0 +1,59 @@ +package com.engine.salary.entity.auth.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleListQueryParam extends BaseQueryParam { + + /** + * 涓氬姟绾垮悕绉 + */ + private String name; + + /** + * 涓氬姟绾縤d + */ + private List roleIds; + + /** + * 鎵g即涔夊姟浜鸿祫婧 + */ + private List taxAgentIds; + + /** + * 璐﹀璧勬簮 + */ + private List sobIds; + + /** + * 鎴愬憳id + */ + private List roleEmpIds; + + + /** + * 鏉冮檺椤甸潰 + */ + private List pages; + + /** + * 鏉冮檺椤 + */ + private List opts; + + + /** + * 鏁版嵁id + */ + private List employeeIds; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java new file mode 100644 index 000000000..f1075d4ab --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -0,0 +1,44 @@ +package com.engine.salary.entity.auth.param; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleSaveParam { + + @JsonSerialize(using = ToStringSerializer.class) + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id涓嶅厑璁镐负绌") + private Long id; + + + @DataCheck(require = true, max = 40, message = "鍚嶇О涓嶅厑璁镐负绌,鍚嶇О涓嶈兘瓒呰繃40涓瓧绗") + private String name; + + @DataCheck(require = false, max = 400, message = "鎻忚堪涓嶈兘瓒呰繃400涓瓧绗") + private String description; + + /** + * 鎵g即涔夊姟浜鸿祫婧 + */ + private List taxAgentIds; + + + /** + * 璐﹀璧勬簮 + */ + private List sobIds; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthSyncParam.java b/src/com/engine/salary/entity/auth/param/AuthSyncParam.java new file mode 100644 index 000000000..1ac9be40c --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthSyncParam.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthSyncParam { + + private Long roleId; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java new file mode 100644 index 000000000..101faec0e --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java @@ -0,0 +1,28 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthTreeQueryParam { + + private Long roleEmpId; + + private List roleIds; + + private List employeeIds; + + private List pages; + + private List opts; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthDataPO.java b/src/com/engine/salary/entity/auth/po/AuthDataPO.java new file mode 100644 index 000000000..b29b6992a --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthDataPO.java @@ -0,0 +1,92 @@ +package com.engine.salary.entity.auth.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.auth.DataLinkEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 鏁版嵁 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthDataPO { + @ElogTransform(name = "id") + private Long id; + + /** + * 瑙掕壊id + */ + @ElogTransform(name = "瑙掕壊id") + private Long roleId; + + /** + * 杩炴帴绗︼紝浜ゃ佸苟銆佽ˉ + * @see DataLinkEnum + */ + @ElogTransform(name = "杩炴帴绗︼紝浜ゃ佸苟銆佽ˉ") + private Integer link; + + /** + * 鏁版嵁绫诲瀷锛1锛氫汉鍛樸2锛氶儴闂ㄣ3锛氬矖浣嶃4锛氬垎閮ㄣ5锛氳鑹层6锛氬畨鍏ㄧ骇鍒 銆7锛氭墍鏈変汉 銆8锛氱櫥褰曚汉銆9锛氳处濂椼10锛歴ql + */ + @ElogTransform(name = "鏁版嵁绫诲瀷") + private Integer targetType; + + /** + * 瀵硅薄id + */ + @ElogTransform(name = "瀵硅薄id") + private String target; + + /** + * 瀵硅薄鍚嶇О + */ + @ElogTransform(name = "瀵硅薄鍚嶇О") + private String targetName; + + @ElogTransform(name = "鎺掑簭") + private Integer sortedIndex; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java new file mode 100644 index 000000000..218c1b3ae --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java @@ -0,0 +1,71 @@ +package com.engine.salary.entity.auth.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 +@ElogTransform( name="鎴愬憳" ) +public class AuthMemberPO { + private Long id; + /** + * 瑙掕壊id + */ + @ElogTransform( name="瑙掕壊id" ) + private Long roleId; + /** + * 瀵硅薄绫诲瀷锛1锛氫汉鍛樸2锛氶儴闂ㄣ3锛氬矖浣嶃4锛氬垎閮ㄣ5锛氳鑹层6锛歴ql + */ + @ElogTransform( name="瀵硅薄绫诲瀷" ) + private Integer targetType; + /** + * 瀵硅薄 + */ + @ElogTransform( name="瀵硅薄" ) + private String target; + /** + * 瀵硅薄 + */ + @ElogTransform( name="瀵硅薄鏄剧ず鍚" ) + private String targetName; + /** + * 鍒涘缓浜 + */ + @ElogTransform( name="鍒涘缓浜" ) + private Long creator; + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform( name="鍒涘缓鏃堕棿" ) + private Date createTime; + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform( name="鏇存柊鏃堕棿" ) + private Date updateTime; + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform( name="鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎" ) + private Integer deleteType; + /** + * 绉熸埛ID + */ + @ElogTransform( name="绉熸埛ID" ) + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthOptPO.java b/src/com/engine/salary/entity/auth/po/AuthOptPO.java new file mode 100644 index 000000000..10da3aed9 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthOptPO.java @@ -0,0 +1,75 @@ +package com.engine.salary.entity.auth.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 +public class AuthOptPO { + @ElogTransform(name = "id") + private Long id; + + /** + * 瑙掕壊id + */ + @ElogTransform(name = "瑙掕壊id") + private Long roleId; + + /** + * 椤甸潰 + */ + @ElogTransform(name = "椤甸潰") + private String page; + + /** + * 鏉冮檺椤 + */ + @ElogTransform(name = "鏉冮檺椤") + private String opt; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthResourcePO.java b/src/com/engine/salary/entity/auth/po/AuthResourcePO.java new file mode 100644 index 000000000..a7fecdd46 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthResourcePO.java @@ -0,0 +1,83 @@ +package com.engine.salary.entity.auth.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 +public class AuthResourcePO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 瑙掕壊id + */ + @ElogTransform(name = "瑙掕壊id") + private Long roleId; + + /** + * 瀵硅薄绫诲瀷锛1锛氭墸缂翠箟鍔′汉 2锛氳处濂 + */ + @ElogTransform( name="瀵硅薄绫诲瀷" ) + private Integer targetType; + + /** + * 瀵硅薄 + */ + @ElogTransform( name="瀵硅薄" ) + private Long target; + + /** + * 瀵硅薄 + */ + @ElogTransform( name="瀵硅薄鏄剧ず鍚" ) + private String targetName; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java b/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java new file mode 100644 index 000000000..a28e5dbe1 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java @@ -0,0 +1,69 @@ +package com.engine.salary.entity.auth.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 +public class AuthRoleDataPO { + @ElogTransform(name = "id") + private Long id; + + /** + * 瑙掕壊id + */ + @ElogTransform(name = "瑙掕壊id") + private Long roleId; + + /** + * 浜哄憳id + */ + @ElogTransform(name = "浜哄憳id") + private Long employeeId; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java b/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java new file mode 100644 index 000000000..f3963f3f7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java @@ -0,0 +1,61 @@ +package com.engine.salary.entity.auth.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 +public class AuthRoleEmpPO { + @ElogTransform(name = "") + private Long id; + /** + * 瑙掕壊id + */ + @ElogTransform(name = "瑙掕壊id") + private Long roleId; + /** + * 浜哄憳id + */ + @ElogTransform(name = "浜哄憳id") + private Long employeeId; + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java new file mode 100644 index 000000000..0475c9b08 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -0,0 +1,69 @@ +package com.engine.salary.entity.auth.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 +@ElogTransform(name = "涓氬姟绾") +public class AuthRolePO { + + private Long id; + + /** + * 鍚嶇О + */ + @ElogTransform(name = "鍚嶇О") + private String name; + + /** + * 鎻忚堪 + */ + @ElogTransform(name = "鎻忚堪") + private String description; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/vo/Permission.java b/src/com/engine/salary/entity/auth/vo/Permission.java new file mode 100644 index 000000000..6faaa3a62 --- /dev/null +++ b/src/com/engine/salary/entity/auth/vo/Permission.java @@ -0,0 +1,40 @@ +package com.engine.salary.entity.auth.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Permission { + /** + * 鏄惁寮鍚簡鍒嗘潈 + */ + private Boolean isOpenDevolution; + + /** + * 鏄惁鎬荤鐞嗗憳 + */ + private Boolean isChief; + + /** + * 鏄惁鎵g即涔夊姟浜虹鐞嗗憳 + */ + private Boolean isAdminEnable; + + /** + * 褰撳墠椤甸潰鏄惁鏈夋潈闄 + */ + private boolean able; + + /** + * 鏉冮檺椤 + */ + private List opts; + +} diff --git a/src/com/engine/salary/entity/datacollection/AddUpSituation.java b/src/com/engine/salary/entity/datacollection/AddUpSituation.java index c12b48717..7d0e46a76 100644 --- a/src/com/engine/salary/entity/datacollection/AddUpSituation.java +++ b/src/com/engine/salary/entity/datacollection/AddUpSituation.java @@ -1,9 +1,6 @@ package com.engine.salary.entity.datacollection; -import com.engine.salary.annotation.Encrypt; -import com.engine.salary.annotation.SalaryFormulaVar; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableOperate; +import com.engine.salary.annotation.*; import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import lombok.AllArgsConstructor; @@ -14,6 +11,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 鏁版嵁閲囬泦-绱鎯呭喌琛 @@ -25,6 +23,7 @@ import java.util.List; @SalaryTable(pageId = "a4f83287-e3f9-4275-9527-7d06e54y6238", fields = "id,addUpSubtraction", operates = {@SalaryTableOperate(text = "鍒犻櫎", index = "0")}) //hrsa_add_up_situation @ElogTransform(name = "寰鏈熺疮璁℃儏鍐") +@Auth(page = "addUpSituation") public class AddUpSituation { /** * 涓婚敭id @@ -266,4 +265,7 @@ public class AddUpSituation { Collection employeeIds; Collection taxAgentIds; + + private Set opts; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java index 313ddc1d4..aaa4f71b4 100644 --- a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java +++ b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java @@ -8,7 +8,7 @@ import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandle import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; import com.engine.salary.util.SalaryI18nUtil; @@ -178,7 +178,7 @@ public class VariableArchiveExcelBO extends Service { // 涓◣鎵g即涔夊姟浜 String taxAgentCellVal = Optional.ofNullable(map.get(taxAgentI18n)).orElse("").toString(); map.put("taxAgent", taxAgentCellVal); - Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getTaxAgentName().equals(taxAgentCellVal)).findFirst(); + Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getName().equals(taxAgentCellVal)).findFirst(); if (!optionalTaxAgent.isPresent()) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowindex + "涓◣鎵g即涔夊姟浜轰笉瀛樺湪锛屾垨涓嶅湪鏉冮檺鑼冨洿鍐"); @@ -186,12 +186,12 @@ public class VariableArchiveExcelBO extends Service { isError = true; return isError; } - Long taxAgentId = optionalTaxAgent.get().getTaxAgentId(); + Long taxAgentId = optionalTaxAgent.get().getId(); map.put("taxAgentId", taxAgentId); // 鐢ㄤ簬鍒濆鍖栧鍏ユ暟鎹牎楠 map.put("employeeId", employeeId); - String repeatKey = optionalTaxAgent.get().getTaxAgentId() + "-" + employeeId.toString(); + String repeatKey = optionalTaxAgent.get().getId() + "-" + employeeId.toString(); if (allTodoVariableArchives.contains(repeatKey)) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowindex + "瀛樺湪閲嶅鏁版嵁"); diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java index b16ebacf6..78b4ac20a 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java @@ -9,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 鏁版嵁閲囬泦-绱涓撻」闄勫姞鎵i櫎 *

Copyright: Copyright (c) 2022

@@ -24,6 +26,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-4275-adn9-7d06e54y67j8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "鏌ョ湅鏄庣粏") }) +@Auth(page = "addUpDeduction") public class AddUpDeductionDTO { /** @@ -163,5 +166,5 @@ public class AddUpDeductionDTO { @SalaryTableColumn(text = "鎿嶄綔", width = "20%", column = "operate") @TableTitle(title = "鎿嶄綔", dataIndex = "operate", key = "operate") - private String operate; + private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java index dc01f6f99..0a743b876 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java @@ -10,6 +10,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 鏁版嵁閲囬泦-绱鎯呭喌琛 */ @@ -20,6 +22,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-7841-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "鏌ョ湅鏄庣粏") }) +@Auth(page = "addUpSituation") public class AddUpSituationDTO { //涓婚敭id @JsonSerialize(using = ToStringSerializer.class) @@ -204,5 +207,5 @@ public class AddUpSituationDTO { private String addUpTaxableIncome; @TableTitle(title = "鎿嶄綔", dataIndex = "operate", key = "operate") - private String operate; + private Set opts; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java index f058c3d91..f5c6fce5f 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java @@ -1,9 +1,7 @@ package com.engine.salary.entity.datacollection.dto; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -13,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 鏁版嵁閲囬泦-鑰冨嫟寮曠敤鍒楄〃 @@ -30,6 +29,7 @@ import java.util.Date; @SalaryTableOperate(text = "鏌ョ湅", index = "0"), @SalaryTableOperate(text = "鍒犻櫎", index = "1") }) +@Auth(page = "attendQuote",checkType = AuthCheckTypeEnum.SOB) public class AttendQuoteListDTO { @SalaryTableColumn(column = "id", display = false) @@ -79,4 +79,6 @@ public class AttendQuoteListDTO { * 钖祫璐﹀id */ private Long salarySobId; + + private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java index 9f214d8a7..641b70c16 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java @@ -2,12 +2,15 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.util.excel.ExcelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 鏁版嵁閲囬泦-鍏朵粬鍏嶇◣鎵i櫎鍒楄〃 *

Copyright: Copyright (c) 2022

@@ -23,6 +26,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "鏌ョ湅鏄庣粏") }) +@Auth(page = "otherDeduction", checkType = AuthCheckTypeEnum.TAX_EMP) public class OtherDeductionListDTO { @@ -139,4 +143,6 @@ public class OtherDeductionListDTO { @SalaryTableColumn(text = "鎿嶄綔", width = "20%", column = "operate") @TableTitle(title = "鎿嶄綔", dataIndex = "operate", key = "operate") private String operate; + + private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java index 5e480bb21..5a993906f 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java @@ -8,6 +8,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 鏁版嵁閲囬泦-涓撻」闄勫姞鎵i櫎鍒楄〃 *

Copyright: Copyright (c) 2022

@@ -23,6 +25,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "鏌ョ湅鏄庣粏") }) +@Auth(page = "specialAddDeduction") public class SpecialAddDeductionListDTO { @@ -133,5 +136,5 @@ public class SpecialAddDeductionListDTO { @SalaryTableColumn(text = "鎿嶄綔", width = "20%", column = "operate") @TableTitle(title = "鎿嶄綔", dataIndex = "operate", key = "operate") - private String operate; + private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java index f872279e1..f371232f5 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.Encrypt; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -23,6 +20,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d98e54y6rj8", tableType = WeaTableType.CHECKBOX) +@Auth(page = "specialAddDeduction") public class SpecialAddDeductionRecordDTO { //涓婚敭id diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java index 6d5905390..b3faa7e4c 100644 --- a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.TableTitle; @@ -10,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 娴姩钖祫妗f鍒楄〃 @@ -24,6 +26,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "bd985583-f84j-p2aj-p288-2hw3hosy6r6,", tableType = WeaTableType.CHECKBOX) +@Auth(page = "variableArchive") public class VariableArchiveListDTO { @TableTitle(title = "id", dataIndex = "id", key = "id") @@ -96,4 +99,6 @@ public class VariableArchiveListDTO { */ private String dismissdate; + private Set opts; + } diff --git a/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java index ab12ad1a0..b5ef4a61a 100644 --- a/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java @@ -4,7 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -75,7 +75,7 @@ public class VariableArchiveImportHandleParam { /** * 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 */ - Collection taxAgentList; + Collection taxAgentList; /** * 褰撳墠鏃堕棿 diff --git a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java index bea18e842..c7b19d239 100644 --- a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java +++ b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java @@ -1,5 +1,7 @@ package com.engine.salary.entity.datacollection.po; +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; import cn.hutool.core.util.NumberUtil; import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.annotation.Encrypt; @@ -20,7 +22,8 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -@ElogTransform(name = "鍏朵粬鍏嶇◣鎵i櫎") +@ElogTransform( name = "鍏朵粬鍏嶇◣鎵i櫎") +@Auth(page = "otherDeduction") public class OtherDeductionPO { /** diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java new file mode 100644 index 000000000..af5dd4d2a --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -0,0 +1,118 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.push.PushRecordStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 鏁版嵁鎺ㄩ佽褰曞垪琛 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushRecordDTO { + + @ElogTransform(name = "") + private Long id; + + + /** + * 璁板綍鍚 + */ + @TableTitle(title = "璁板綍鍚", dataIndex = "name", key = "name") + private String name; + + + /** + * 鏍哥畻璁板綍id + */ + private Long acctRecordId; + + + /** + * 鎺ㄩ侀厤缃甶d + */ + private Long settingId; + + /** + * 寤烘āid + */ + private Integer modeId; + + /** + * 鏁版嵁搴撹〃鍚 + */ + @TableTitle(title = "璁板綍鍚", dataIndex = "name", key = "name") + private String tableName; + + + /** + * 鎺ㄩ佺姸鎬 + * + * @see PushRecordStatusEnum + */ + @TableTitle(title = "鎺ㄩ佺姸鎬", dataIndex = "status", key = "status") + private Integer status; + + /** + * 鎵ц鏃堕棿 + */ + @TableTitle(title = "鎵ц鏃堕棿", dataIndex = "startTime", key = "startTime") + private Date startTime; + + /** + * 缁撴潫鏃堕棿 + */ + @ElogTransform(name = "缁撴潫鏃堕棿") + private Date endTime; + + + /** + * 鎺ㄩ佺被鍨嬶紝0鎺ㄩ侊紝1鎾ゅ洖 + */ + @ElogTransform(name = "鎺ㄩ佺被鍨") + private Integer type; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java new file mode 100644 index 000000000..2807eaf69 --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java @@ -0,0 +1,90 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushRecordDetailDTO { + + + @ElogTransform(name = "id") + private Long id; + + /** + * 鎺ㄩ佽褰昳d + */ + private Long recordId; + + /** + * 鏍哥畻浜哄憳id + */ + private Long acctEmpId; + + /** + * 鎵ц鐘舵 + * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum + */ + @TableTitle(title = "鎵ц鐘舵", dataIndex = "status",key = "status") + private Integer status; + + /** + * 澶辫触鍘熷洜 + */ + @TableTitle(title = "澶辫触鍘熷洜", dataIndex = "fail_reason",key = "status") + private String fail_reason; + + /** + * 鎵цsql + */ + @ElogTransform(name = "鎵цsql") + private String execute; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java new file mode 100644 index 000000000..114d6fa5b --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java @@ -0,0 +1,61 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingDTO { + + @ElogTransform(name = "") + private Long id; + + + + @TableTitle(title = "浠诲姟鍚嶇О", key = "name", dataIndex = "name") + private String name; + + /** + * 鏄惁鍚敤锛0鍚 1鏄 + */ + @TableTitle(title = "鏄惁鍚敤", key = "able", dataIndex = "able") + private Integer able; + + + /** + * 钖祫甯愬闆嗗悎 + */ + @TableTitle(title = "钖祫甯愬闆嗗悎", key = "salarySobs", dataIndex = "salarySobs") + private List salarySobs; + + /** + * 寤烘āid + */ + @TableTitle(title = "寤烘āid", key = "modeId", dataIndex = "modeId") + private Integer modeId; + + /** + * 妯″潡鍚嶇О + */ + @TableTitle(title = "妯″潡鍚嶇О", key = "modeName", dataIndex = "modeName") + private String modeName; + + /** + * 鏁版嵁搴撹〃 + */ + @TableTitle(title = "鏁版嵁搴撹〃鍚", key = "tableName", dataIndex = "tableName") + private String tableName; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java new file mode 100644 index 000000000..a45d4635f --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java @@ -0,0 +1,62 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 鏁版嵁鎺ㄩ侀厤缃槑缁 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemDTO { + + + private Long id; + + /** + * 璁剧疆id + */ + private Long settingId; + + /** + * 椤圭洰 + */ + private String item; + + /** + * 椤圭洰鍚 + */ + @TableTitle(title = "椤圭洰鍚", dataIndex = "itemName", key = "itemName") + private String itemName; + + /** + * 椤圭洰绫诲瀷 + * @see SalarySQLReferenceEnum + */ + private String source; + + private String sourceName; + + /** + * 鏁版嵁搴撳瓧娈 + */ + @TableTitle(title = "鏁版嵁搴撳瓧娈", dataIndex = "fieldName", key = "fieldName") + private String fieldName; + + /** + * 瀛楁绫诲瀷 + * @see PushItemFieldEnum + */ + private PushItemFieldEnum fieldType; + + @TableTitle(title = "瀛楁绫诲瀷", dataIndex = "fieldTypeName", key = "fieldTypeName") + private String fieldTypeName; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushParam.java b/src/com/engine/salary/entity/push/param/PushParam.java new file mode 100644 index 000000000..24f8c257e --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushParam.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.push.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushParam { + + + private Long salaryAcctRecordId; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java new file mode 100644 index 000000000..a24bc3b40 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemQueryParam extends BaseQueryParam { + + private Long settingId; + + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java new file mode 100644 index 000000000..57f46c330 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -0,0 +1,66 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; + +/** + * 鏁版嵁鎺ㄩ侀厤缃槑缁 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemSaveParam { + + + private Long id; + + /** + * 璁剧疆id + */ + @DataCheck(require = true, message = "璁剧疆id涓虹┖") + private Long settingId; + + /** + * 椤圭洰 + */ + @DataCheck(require = true, message = "椤圭洰涓虹┖") + private String item; + + /** + * 椤圭洰鍚 + */ + @DataCheck(require = true, message = "椤圭洰鍚嶄负绌") + private String itemName; + + /** + * 椤圭洰绫诲瀷 + * @see SalarySQLReferenceEnum + */ + @DataCheck(require = true, message = "鏁版嵁鏉ユ簮") + private String source; + + /** + * 鏁版嵁搴撳瓧娈 + */ + @DataCheck(require = true, message = "鏁版嵁搴撳瓧娈典负绌") + private String fieldName; + + /** + * 瀛楁绫诲瀷 + */ + @DataCheck(require = true, message = "瀛楁绫诲瀷涓虹┖") + private PushItemFieldEnum fieldType; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java b/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java new file mode 100644 index 000000000..8d0a96e10 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java @@ -0,0 +1,28 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.ValidTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingQueryParam extends BaseQueryParam { + + + /** + * 浠诲姟鍚嶇О + */ + @DataCheck(require = true, type = ValidTypeEnum.STRING, max = 50, labelId = 86185, message = "浠诲姟鍚嶇О涓虹┖") + private String name; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java new file mode 100644 index 000000000..cdc28d327 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java @@ -0,0 +1,59 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.ValidTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingSaveParam { + + private Long id; + + /** + * 浠诲姟鍚嶇О + */ + @DataCheck(require = true, type = ValidTypeEnum.STRING, max = 50, labelId = 86185, message = "浠诲姟鍚嶇О涓虹┖") + private String name; + + /** + * 鏄惁鍚敤锛0鍚 1鏄 + */ + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, message = "鏄惁鍚敤涓虹┖") + private Integer able; + + + /** + * 钖祫甯愬闆嗗悎 + */ + private List salarySobIds; + + /** + * 寤烘āid + */ + private Integer modeId; + + /** + * 妯″潡鍚嶇О + */ + private String modeName; + + + /** + * 鏁版嵁搴撹〃 + */ + @DataCheck(require = true, message = "鏁版嵁搴撹〃涓虹┖") + private String tableName; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java b/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java new file mode 100644 index 000000000..7a4619d2d --- /dev/null +++ b/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RecordDetailListQueryParam extends BaseQueryParam { + + @DataCheck(require = true, message = "鎺ㄩ佽褰昳d涓嶈兘涓虹┖") + private Long recordId; + + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/RecordListQueryParam.java b/src/com/engine/salary/entity/push/param/RecordListQueryParam.java new file mode 100644 index 000000000..0dfe41108 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/RecordListQueryParam.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RecordListQueryParam extends BaseQueryParam { + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java new file mode 100644 index 000000000..64e27ed08 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -0,0 +1,91 @@ +package com.engine.salary.entity.push.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 +public class PushRecordDetailPO { + + + @ElogTransform(name = "id") + private Long id; + + /** + * 鎺ㄩ佽褰昳d + */ + @ElogTransform(name = "鎺ㄩ佽褰昳d") + private Long recordId; + + /** + * 鏍哥畻浜哄憳id + */ + @ElogTransform(name = "鏍哥畻浜哄憳id") + private Long acctEmpId; + + /** + * 鎵ц鐘舵 + * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum + */ + @ElogTransform(name = "鎵ц鐘舵") + private Integer status; + + /** + * 澶辫触鍘熷洜 + */ + @ElogTransform(name = "澶辫触鍘熷洜") + private String fail_reason; + + /** + * 鎵цsql + */ + @ElogTransform(name = "鎵цsql") + private String execute; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java new file mode 100644 index 000000000..6101e4b18 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -0,0 +1,123 @@ +package com.engine.salary.entity.push.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.push.PushRecordStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushRecordPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 璁板綍鍚 + */ + @ElogTransform(name = "璁板綍鍚") + private String name; + + + /** + * 鏍哥畻璁板綍id + */ + @ElogTransform(name = "鏍哥畻璁板綍id") + private Long acctRecordId; + + + /** + * 鎺ㄩ侀厤缃甶d + */ + @ElogTransform(name = "鎺ㄩ侀厤缃甶d") + private Long settingId; + + /** + * 寤烘āid + */ + private Integer modeId; + + /** + * 鏁版嵁搴撹〃鍚 + */ + private String tableName; + + + /** + * 鎺ㄩ佺姸鎬 + * @see PushRecordStatusEnum + */ + @ElogTransform(name = "鎺ㄩ佺姸鎬") + private Integer status; + + /** + * 澶辫触鍘熷洜 + */ + @ElogTransform(name = "澶辫触鍘熷洜") + private String fail_reason; + + /** + * 寮濮嬫椂闂 + */ + @ElogTransform(name = "寮濮嬫椂闂") + private Date startTime; + + /** + * + */ + @ElogTransform(name = "缁撴潫鏃堕棿") + private Date endTime; + + + + /** + * 鎺ㄩ佺被鍨 + */ + @ElogTransform(name = "鎺ㄩ佺被鍨") + private Integer type; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java new file mode 100644 index 000000000..ad7f97da1 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -0,0 +1,99 @@ +package com.engine.salary.entity.push.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 鏁版嵁鎺ㄩ侀厤缃槑缁 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemPO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 璁剧疆id + */ + @ElogTransform(name = "璁剧疆id") + private Long settingId; + + /** + * 椤圭洰 + */ + @ElogTransform(name = "椤圭洰") + private String item; + + /** + * 椤圭洰鍚 + */ + @ElogTransform(name = "椤圭洰鍚") + private String itemName; + + /** + * 椤圭洰绫诲瀷 + * @see SalarySQLReferenceEnum + */ + @ElogTransform(name = "椤圭洰绫诲瀷") + private String source; + + /** + * 鏁版嵁搴撳瓧娈 + */ + @ElogTransform(name = "鏁版嵁搴撳瓧娈") + private String fieldName; + + /** + * 瀛楁绫诲瀷 + * @see PushItemFieldEnum + */ + @ElogTransform(name = "瀛楁绫诲瀷") + private Integer fieldType; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingPO.java b/src/com/engine/salary/entity/push/po/PushSettingPO.java new file mode 100644 index 000000000..a997593f9 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingPO.java @@ -0,0 +1,93 @@ +package com.engine.salary.entity.push.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; +import java.util.List; + +/** + * 鏁版嵁鎺ㄩ侀厤缃 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingPO { + + @ElogTransform(name = "") + private Long id; + + /** + * 鏄惁鍚敤锛0鍚 1鏄 + */ + @ElogTransform(name = "鏄惁鍚敤锛0鍚 1鏄") + private Integer able; + + + @ElogTransform(name = "浠诲姟鍚嶇О") + private String name; + + /** + * 钖祫甯愬闆嗗悎 + */ + @ElogTransform(name = "钖祫甯愬闆嗗悎") + private List salarySobIds; + + /** + * 寤烘āid + */ + @ElogTransform(name = "寤烘āid") + private Integer modeId; + + /** + * 妯″潡鍚嶇О + */ + @ElogTransform(name = "妯″潡鍚嶇О") + private String modeName; + + /** + * 鏁版嵁搴撹〃 + */ + @ElogTransform(name = "鏁版嵁搴撹〃") + private String tableName; + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 2ccd45402..23a021dbd 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -120,55 +120,36 @@ public class SalaryBillBO { /** * 鏋勫缓宸ヨ祫鍗曚腑鐨勪汉鍛樹俊鎭 * - * @param simpleEmployee */ - public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, DataCollectionEmployee simpleEmployee) { + public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, Map empInfo) { SalaryTemplateSalaryItemSetListDTO employeeInformation = salaryBillSendParam.getEmployeeInformation(); Map employeeField = salaryBillSendParam.getEmployeeField(); - if (employeeInformation == null || simpleEmployee == null) { + if (employeeInformation == null || empInfo == null) { return; } if (CollectionUtils.isNotEmpty(employeeInformation.getItems())) { //鑾峰彇鍛樺伐淇℃伅鐨勫瓧娈靛悕鍜屼腑鏂囨弿杩扮殑map鍏崇郴 SalaryFormulaEmployeeDTO salaryFormulaEmployeeDTO = SalaryFormulaEmployeeDTO.builder() - .employeeId(simpleEmployee.getEmployeeId()) - .taxAgentName(salaryBillSendParam.getTaxAgentName()) - .departmentName(simpleEmployee.getDepartmentName()) - .companystartdate(simpleEmployee.getCompanystartdate()) - .email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail()) - .sex(simpleEmployee.getSex() == null ? "" : simpleEmployee.getSex()) - .mobile(StringUtils.isEmpty(simpleEmployee.getMobile()) ? "" : simpleEmployee.getMobile()).jobtitleName(simpleEmployee.getJobtitleName()) - .status(StringUtils.isEmpty(simpleEmployee.getStatus()) ? "" : simpleEmployee.getStatus()) - .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) - .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) - .workcode(simpleEmployee.getWorkcode()) - .idNo(simpleEmployee.getIdNo()) - .statusName(simpleEmployee.getStatusName()) - .accountType(simpleEmployee.getAccountType()) - .accountTypeName(simpleEmployee.getAccountTypeName()) + .employeeId((long) empInfo.getOrDefault("employeeId", 0L)) + .taxAgentName(Util.null2String(empInfo.get("taxAgentName"))) + .departmentName(Util.null2String(empInfo.get("departmentName"))) + .companystartdate(Util.null2String(empInfo.get("companystartdate"))) + .email(Util.null2String(empInfo.get("email"))) + .sex(Util.null2String(empInfo.get("sex"))) + .mobile(Util.null2String(empInfo.get("mobile"))) + .jobtitleName(Util.null2String(empInfo.get("jobtitleName"))) + .status(Util.null2String(empInfo.get("status"))) + .telephone(Util.null2String(empInfo.get("telephone"))) + .username(Util.null2String(empInfo.get("username"))) + .workcode(Util.null2String(empInfo.get("workcode"))) + .idNo(Util.null2String(empInfo.get("idNo"))) + .statusName(Util.null2String(empInfo.get("statusName"))) +// .accountType((Integer) empInfo.getOrDefault("accountType",0)) + .accountTypeName(Util.null2String(empInfo.get("accountTypeName"))) .build(); List items = employeeInformation.getItems(); - // 1.SalaryAcctResultBO.buildEmployeeFieldName()鐨勫彇娉 -// Set> entries = employeeField.entrySet(); -// for (SalaryTemplateSalaryItemListDTO e : items) { -// Optional> entry = entries.stream().filter(f -> Objects.equals(e.getName(), f.getValue())).findFirst(); -// if (entry.isPresent()) { -// String key = entry.get().getKey(); -// if (StringUtils.isNotBlank(key)) { -// String getter = "get" + key.substring(0, 1).toUpperCase() + key.substring(1); -// try { -// Method method = salaryFormulaEmployeeDTO.getClass().getMethod(getter); -// Object invoke = method.invoke(salaryFormulaEmployeeDTO); -// e.setSalaryItemValue((String) invoke); -// } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { -// log.error("no such method", e); -// } -// } -// } -// } - // 2.SalaryBillBO.buildEmployeeFieldName() for (SalaryTemplateSalaryItemListDTO e : items) { String employeeFieldName = employeeField.get(e.getName()); if (!StringUtils.isEmpty(employeeFieldName)) { @@ -267,7 +248,7 @@ public class SalaryBillBO { } Util_Message.store(messageBean); } catch (IOException e) { - log.error("娑堟伅鍙戦佸け璐",e); + log.error("娑堟伅鍙戦佸け璐", e); } } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java index c77c0bd7a..dc9d31b73 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java @@ -59,7 +59,7 @@ public class SalaryBillSendDTO { private String picUrl; //鎵g即涔夊姟浜哄悕绉 - private String taxAgentName; +// private String taxAgentName; //宸ヨ祫鍗曟ā鏉-钖祫椤圭洰璁剧疆 private List salaryItemSetList; diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java index 4e87a6ad8..ae647ab04 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java @@ -44,6 +44,7 @@ public class SalarySendDetailListDTO { // 涓◣鎵g即涔夊姟浜") private String taxAgent; + private Long taxAgentId; // 閮ㄩ棬") @I18n diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java index 915045c89..ff2bb7d2a 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java @@ -1,8 +1,10 @@ package com.engine.salary.entity.salaryBill.dto; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.SalaryTableOperate; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; @@ -10,6 +12,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * @Description: 宸ヨ祫鍗曞彂鏀 @@ -19,10 +22,11 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "a4f85287-289dff07669d7a23de0ef88d2f7129e7", operates = { - @SalaryTableOperate(index = "0", text = "鍙戞斁" ), + @SalaryTableOperate(index = "0", text = "鍙戞斁"), @SalaryTableOperate(index = "1", text = "鏌ョ湅璇︽儏"), @SalaryTableOperate(index = "2", text = "鏇存柊妯℃澘") }) +@Auth(page = "salaryBill", checkType = AuthCheckTypeEnum.SOB, sobIdField = "salarySobId") public class SalarySendListDTO { // 涓婚敭id @@ -37,7 +41,7 @@ public class SalarySendListDTO { // ) // @JsonFormat(pattern = "yyyy-MM") -// 钖祫鎵灞炴湀 + // 钖祫鎵灞炴湀 @SalaryTableColumn(text = "钖祫鎵灞炴湀", width = "10%", column = "salaryYearMonth") private Date salaryYearMonth; @@ -54,15 +58,15 @@ public class SalarySendListDTO { // tableColumn = @TableColumn(width = "35%") // ) -// 钖祫璐﹀ + // 钖祫璐﹀ @SalaryTableColumn(text = "钖祫璐﹀", width = "35%", column = "username") private String salarySob; -// 鏍哥畻娆℃暟") + // 鏍哥畻娆℃暟") // 鏍哥畻娆℃暟 private String acctTimes; -// 宸ヨ祫鍗曟ā鏉") + // 宸ヨ祫鍗曟ā鏉") // @WeaFormat( // label = "宸ヨ祫鍗曟ā鏉", // labelId = 93214, @@ -72,7 +76,7 @@ public class SalarySendListDTO { // 宸ヨ祫鍗曟ā鏉 private String template; -// 宸ヨ祫鍗曟ā鏉縄d") + // 宸ヨ祫鍗曟ā鏉縄d") // 宸ヨ祫鍗曟ā鏉縄d @SalaryTableColumn(text = "宸ヨ祫鍗曟ā鏉縤d", width = "0%", column = "templateId", display = false) private Long templateId; @@ -91,7 +95,7 @@ public class SalarySendListDTO { @SalaryTableColumn(text = "鍙戦佹绘暟", width = "0%", column = "sendTotal", display = false) private Integer sendTotal; -// 宸插彂鏀") + // 宸插彂鏀") // @WeaFormat( // label = "宸插彂鏀", // labelId = 93212, @@ -101,7 +105,7 @@ public class SalarySendListDTO { @SalaryTableColumn(text = "宸插彂鏀", width = "15%", column = "sendSituation") private String sendSituation; -// 鏈鍚庡彂閫佹椂闂") + // 鏈鍚庡彂閫佹椂闂") // @WeaFormat( // label = "鏈鍚庡彂閫佹椂闂", // labelId = 93213, @@ -146,5 +150,5 @@ public class SalarySendListDTO { */ private Integer ackFeedbackStatus; - + private Set opts; } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java index 3538a3387..5fdaaef98 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java @@ -1,15 +1,15 @@ package com.engine.salary.entity.salaryBill.dto; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * @Description: 宸ヨ祫鍗曟ā鏉 */ @@ -24,6 +24,7 @@ import lombok.NoArgsConstructor; @SalaryTableOperate(index = "3", text = "鎿嶄綔鏃ュ織" ) }) @ElogTransform(name = "宸ヨ祫鍗曟ā鏉") +@Auth(page = "salaryBill", checkType = AuthCheckTypeEnum.SOB) public class SalaryTemplateListDTO { //涓婚敭id @@ -65,4 +66,7 @@ public class SalaryTemplateListDTO { // 钖祫璐﹀id private Long salarySobId; + + + private Set opts; } diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index 335d40833..17ddb7eb7 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -256,7 +256,7 @@ public class CalculateFormulaVarBO { } private void handleVariableArchiveData(SalaryAcctCalculateBO salaryAcctCalculateBO, Map> resultMap) { - Map> variableArchiveMap = SalaryEntityUtil.convert2Map(variableArchiveList, map -> map.getOrDefault("taxAgentIds", "").toString() + "-" + map.getOrDefault("employeeId", "").toString()); + Map> variableArchiveMap = SalaryEntityUtil.convert2Map(variableArchiveList, map -> map.getOrDefault("taxAgentId", "").toString() + "-" + map.getOrDefault("employeeId", "").toString()); // 濉厖鍒拌繑鍥炵粨鏋滈泦涓 for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { List formulaVarValues = resultMap.computeIfAbsent(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId(), @@ -477,9 +477,9 @@ public class CalculateFormulaVarBO { // 绀句繚绂忓埄鍙夊瓧娈 List fieldNames = Lists.newArrayList(salaryAcctCalculateBO.getWelfareColumns().values()); // 绀句繚绂忓埄鏁版嵁 - Map> tempMap = Maps.newHashMapWithExpectedSize(welfareData.size()); + Map> tempMap = new HashMap<>(); welfareData.forEach(map -> { - String key = String.valueOf(map.getOrDefault("employeeId", StringUtils.EMPTY)); + String key = map.getOrDefault("employeeId", StringUtils.EMPTY) + "_" + map.getOrDefault("taxAgentId", StringUtils.EMPTY); List formulaVarValues = tempMap.computeIfAbsent(key, k -> Lists.newArrayList()); formulaVarValues.addAll(fieldNames.stream().map(fieldName -> { String fieldId = SalaryFormulaReferenceEnum.WELFARE.getValue() @@ -492,7 +492,7 @@ public class CalculateFormulaVarBO { for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { List formulaVarValues = resultMap.computeIfAbsent(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId(), k -> Lists.newArrayList()); - formulaVarValues.addAll(tempMap.getOrDefault(String.valueOf(salaryAcctEmployeePO.getEmployeeId()), Collections.emptyList())); + formulaVarValues.addAll(tempMap.getOrDefault(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId(), Collections.emptyList())); } } @@ -589,8 +589,8 @@ public class CalculateFormulaVarBO { // 濉厖鍒拌繑鍥炵粨鏋滈泦涓 employeeMap.forEach((key, po) -> { // 鑾峰彇po鐨勭姸鎬 - if(po.getStatus() != null && NumberUtil.isNumber(po.getStatus())) { - po.setStatusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(po.getStatus(),"1")))); + if (po.getStatus() != null && NumberUtil.isNumber(po.getStatus())) { + po.setStatusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(po.getStatus(), "1")))); } List formulaVarValues = resultMap.computeIfAbsent(key, k -> Lists.newArrayList()); Map map = JsonUtil.parseMap(po, String.class); diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index ad98f4ad7..408da743f 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -89,10 +89,11 @@ public class SalaryAcctRecordBO { btnList.add(new WeaTableOperate("閲嶆柊鏍哥畻", null, "4")); } } + String taxAgentName = salarySobPO.getTaxAgentIds().stream().map(id -> taxAgentMap.getOrDefault(id, "")).collect(Collectors.joining(",")); return SalaryAcctRecordListDTO.builder() .id(salaryAcctRecordPO.getId()) .salarySobName(Optional.ofNullable(salarySobPO).map(SalarySobPO::getName).orElse(StringUtils.EMPTY)) - .taxAgentName(taxAgentMap.get(Optional.ofNullable(salarySobPO).map(SalarySobPO::getTaxAgentId).orElse(0L))) + .taxAgentName(taxAgentName) .salaryMonth(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()).toString()) .taxCycle(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()).toString()) .status(Optional.ofNullable(salaryAcctRecordStatusEnum) @@ -107,6 +108,7 @@ public class SalaryAcctRecordBO { .description(salaryAcctRecordPO.getDescription()) .approvalStatus(salaryAcctRecordPO.getApprovalStatus()) .operate(btnList) + .opts(salaryAcctRecordPO.getOpts()) .build(); }).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index c80d67dfe..b906a6a37 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -274,71 +274,79 @@ public class SalaryAcctResultBO { } 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); - return salaryAcctEmployees.stream().map(e -> { - Map resultValueMap = SalaryEntityUtil.convert2Map(acctResultMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()), - SalaryAcctResultPO::getSalaryItemId, SalaryAcctResultPO::getResultValue); - // 钖祫椤圭洰鐨勫 - Map map = SalaryEntityUtil.convert2Map(salaryItems, o -> "" + o.getId(), o -> resultValueMap.getOrDefault(o.getId(), StringUtils.EMPTY)); - // 钖祫椤圭洰鐨勫瓧娈电被鍨嬶紙鍓嶇渚濇嵁杩欎釜鍒ゆ柇鏄惁闇瑕佸睍绀哄崈鍒嗕綅锛 - Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); - map.putAll(dataTypeMap); - // 浜哄憳淇℃伅瀛楁鐨勫 - Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId()), e, true); - for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - // 鍛樺伐淇℃伅瀛楁鐨勫瓧娈电被鍨 - 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 ("subcompanyId".equals(salarySobEmpField.getFieldCode())) { - map.put("subcompanyId", e.getSubcompanyId()); - } 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(Util.null2s(e.getStatus(), "1")))); - } else if ("accountType".equals(salarySobEmpField.getFieldCode())) { - map.put("accountType", e.getAccountType()); - } else if ("accountTypeName".equals(salarySobEmpField.getFieldCode())) { - map.put("accountTypeName", AccountTypeEnum.getDefaultLabelByValue(e.getAccountType())); - } else { + Map> taxAcctEmpsMap = SalaryEntityUtil.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getTaxAgentId); + Map> taxAcctResultMap = SalaryEntityUtil.group2Map(salaryAccountingResults, SalaryAcctResultPO::getTaxAgentId); + + List> result = new ArrayList<>(); + for (Long taxAgentId : taxAcctEmpsMap.keySet()) { + Map> acctResultMap = SalaryEntityUtil.group2Map(taxAcctResultMap.get(taxAgentId), SalaryAcctResultPO::getEmployeeId); + List> collect = taxAcctEmpsMap.get(taxAgentId).stream().map(e -> { + Map resultValueMap = SalaryEntityUtil.convert2Map(acctResultMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()), + SalaryAcctResultPO::getSalaryItemId, SalaryAcctResultPO::getResultValue); + // 钖祫椤圭洰鐨勫 + Map map = SalaryEntityUtil.convert2Map(salaryItems, o -> "" + o.getId(), o -> resultValueMap.getOrDefault(o.getId(), StringUtils.EMPTY)); + // 钖祫椤圭洰鐨勫瓧娈电被鍨嬶紙鍓嶇渚濇嵁杩欎釜鍒ゆ柇鏄惁闇瑕佸睍绀哄崈鍒嗕綅锛 + Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); + map.putAll(dataTypeMap); + // 浜哄憳淇℃伅瀛楁鐨勫 + Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId()), e, true); + for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { + // 鍛樺伐淇℃伅瀛楁鐨勫瓧娈电被鍨 + 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 ("subcompanyId".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyId", e.getSubcompanyId()); + } 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(Util.null2s(e.getStatus(), "1")))); + } else if ("accountType".equals(salarySobEmpField.getFieldCode())) { + map.put("accountType", e.getAccountType()); + } else if ("accountTypeName".equals(salarySobEmpField.getFieldCode())) { + map.put("accountTypeName", AccountTypeEnum.getDefaultLabelByValue(e.getAccountType())); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } } + map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } - map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); - } - // 涓婚敭id - map.put("id", e.getId()); - //閿佸畾鏁版嵁 - map.put("lockItems", e.getLockItems() != null ? e.getLockItems().stream().filter(Objects::nonNull).map(Object::toString).collect(Collectors.toList()) : new ArrayList<>()); - //浜哄憳id - map.put("employeeId", e.getEmployeeId()); - // 涓◣鎵g即涔夊姟浜 - String taxAgentName = taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY); - map.put("taxAgentName", taxAgentName); - // 鏄惁灞炰簬"鍚堝苟璁$◣"鐨勬爣璁 - map.put("consolidatedTaxation", StringUtils.isNotEmpty(taxAgentName) && consolidatedTaxSalaryAcctEmpIds.contains(e.getId())); - // 涓◣鎵g即涔夊姟浜虹殑瀛楁绫诲瀷 - map.put("taxAgentName" + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); - // 鍏紡璇︽儏 - customParameters.putAll(customBackCalcParameters); - map.put("customParameters", customParameters); - return map; - }).collect(Collectors.toList()); + // 涓婚敭id + map.put("id", e.getId()); + //閿佸畾鏁版嵁 + map.put("lockItems", e.getLockItems() != null ? e.getLockItems().stream().filter(Objects::nonNull).map(Object::toString).collect(Collectors.toList()) : new ArrayList<>()); + //浜哄憳id + map.put("employeeId", e.getEmployeeId()); + // 涓◣鎵g即涔夊姟浜 + String taxAgentName = taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY); + map.put("taxAgentName", taxAgentName); + // 鏄惁灞炰簬"鍚堝苟璁$◣"鐨勬爣璁 + map.put("consolidatedTaxation", StringUtils.isNotEmpty(taxAgentName) && consolidatedTaxSalaryAcctEmpIds.contains(e.getId())); + // 涓◣鎵g即涔夊姟浜虹殑瀛楁绫诲瀷 + map.put("taxAgentName" + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); + // 鍏紡璇︽儏 + customParameters.putAll(customBackCalcParameters); + map.put("customParameters", customParameters); + return map; + }).collect(Collectors.toList()); + result.addAll(collect); + } + return result; } /** diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index edc4d99dd..e3d9b8fcc 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Set; /** * 钖祫鏍哥畻鍒楄〃 @@ -21,29 +22,19 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -//@SalaryTable( -// value = { -// @SalaryTableOperate(index = 0, text = "鏍哥畻", labelId = 94146), -// @SalaryTableOperate(index = 1, text = "褰掓。", labelId = 92144), -// @SalaryTableOperate(index = 2, text = "鏌ョ湅", labelId = 90821, outer = false), -// @SalaryTableOperate(index = 3, text = "鍒犻櫎", labelId = 87061, outer = false), -// @SalaryTableOperate(index = 4, text = "鎿嶄綔鏃ュ織", labelId = 87775, outer = false), -// @SalaryTableOperate(index = 5, text = "閲嶆柊鏍哥畻", labelId = 98820) -// }, tableType = WeaTableTypeEnum.NONE, pageUid = "salaryAcctRecordList" -//) public class SalaryAcctRecordListDTO { //涓婚敭id private Long id; - @TableTitle(title = "涓◣鎵g即涔夊姟浜", dataIndex = "taxAgentName", key = "taxAgentName") - private String taxAgentName; + @TableTitle(title = "钖祫鎵灞炴湀", dataIndex = "salaryMonth", key = "salaryMonth") + private String salaryMonth; @TableTitle(title = "钖祫璐﹀", dataIndex = "salarySobName", key = "salarySobName") private String salarySobName; - @TableTitle(title = "钖祫鎵灞炴湀", dataIndex = "salaryMonth", key = "salaryMonth") - private String salaryMonth; + @TableTitle(title = "涓◣鎵g即涔夊姟浜", dataIndex = "taxAgentName", key = "taxAgentName") + private String taxAgentName; @TableTitle(title = "鏄惁鍥炵畻杩", dataIndex = "backCalcStatus", key = "backCalcStatus") private Integer backCalcStatus; @@ -78,4 +69,6 @@ public class SalaryAcctRecordListDTO { @TableTitle(title = "鎿嶄綔", dataIndex = "operate", key = "operate") private List operate; + + private Set opts; } diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index 7d508583c..4fcc8dce1 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.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; @@ -29,6 +30,7 @@ import java.util.List; @AllArgsConstructor //hrsa_salary_acct_emp @ElogTransform(name = "钖祫鏍哥畻浜哄憳") +@Auth(page = "salaryAcct") public class SalaryAcctEmployeePO { /** diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index 1f0025ca5..ad062d7ff 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -1,7 +1,9 @@ package com.engine.salary.entity.salaryacct.po; -import com.engine.salary.common.LocalDateRange; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.common.LocalDateRange; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -12,6 +14,7 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 钖祫鏍哥畻琛 @@ -28,6 +31,7 @@ import java.util.List; @Builder @ElogTransform( name = "钖祫鏍哥畻璁板綍" ) //hrsa_salary_acct_record +@Auth(page = "salaryAcct",checkType = AuthCheckTypeEnum.SOB) public class SalaryAcctRecordPO { /** @@ -126,6 +130,8 @@ public class SalaryAcctRecordPO { @ElogTransform( name = "鏇存柊鏃堕棿" ) private Date updateTime; + private Long taxAgentId; + /** * 瀹℃壒娴佺▼id */ @@ -142,6 +148,9 @@ public class SalaryAcctRecordPO { @Deprecated private List lockSalaryItemIds; + + private Set opts; + //鏌ヨ鏉′欢------------------------------- Collection ids; diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index 4261d8da2..75b26f972 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -108,75 +108,6 @@ public class SalaryArchiveBO { LocalDateRange localDateRange, List allEmployeeIds, boolean isOnlyTaxAgent) { -// // 寮濮嬫棩鏈 -// Date start = localDateRange.getFromDate(); -// // 缁撴潫鏃ユ湡 -// Date end = localDateRange.getEndDate(); -// -// List list = new ArrayList<>(); -// allEmployeeIds.forEach(e -> { -// // 鍚屼竴涓汉鐨勬。妗堟暟鎹 -// List salaryArchives = salaryArchiveList.stream().filter(f -> f.getEmployeeId().equals(e)).collect(Collectors.toList()); -// List salaryArchiveIds = salaryArchives.stream().map(SalaryArchivePO::getId).collect(Collectors.toList()); -// // 鍚屼竴涓汉鐨勮柂璧勯」鐩皟鏁村巻鍙叉暟鎹 -// List salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d -> salaryArchiveIds.contains(d.getSalaryArchiveId())).collect(Collectors.toList()); -// List salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList()); -// -// SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO(); -// salaryArchiveData.setEmployeeId(e); -// List taxAgents = new ArrayList<>(); -// // 鎸変釜绋庢墸缂翠箟鍔′汉鐢熸晥鏃ユ湡鏃堕棿娈靛垏鍓 -// for (SalaryArchivePO salaryArchive : salaryArchives) { -// Date fromDate = salaryArchive.getPayStartDate(); -// Date endDate = salaryArchive.getPayEndDate(); -// // 璧峰鍙戣柂鏃ヤ笉涓虹┖锛屼笖涓嶈兘姣旂粨鏉熸棩鏈熸櫄锛屾渶鍚庡彂钖棩鍙┖鍙笉绌猴紝浣嗘槸濡傛灉涓嶄负绌猴紝灏变笉鑳芥瘮寮濮嬫棩鏈熸棭锛屼笖璧峰鍙戣柂鏃ヤ笉鑳芥櫄浜庢渶鍚庡彂钖棩 -// boolean isEnable = fromDate != null && !fromDate.after(end) && (endDate == null || (!fromDate.after(endDate) && !endDate.before(start))); -// if (isEnable) { -// SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO(); -// taxAgent.setTaxAgentId(salaryArchive.getTaxAgentId()); -//// taxAgent.setIncomeCategory(salaryArchive.getIncomeCategory()); -// taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start) ? start : fromDate)).endDate(endDate == null || endDate.after(end) ? end : endDate).build()); -// // 钖祫椤圭洰鏁版嵁鎸変釜绋庢墸缂翠箟鍔′汉鍒囧壊 -// if (!isOnlyTaxAgent) { -// // 寮濮嬫棩鏈 -// Date startItem = taxAgent.getEffectiveDateRange().getFromDate(); -// // 缁撴潫鏃ユ湡 -// Date endItem = taxAgent.getEffectiveDateRange().getEndDate(); -// Date endTempItem = endItem; -// List salaryItemValues = new ArrayList<>(); -// for (Long salaryArchiveItemId : salaryArchiveItemIds) { -// for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) { -// if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId()) || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchive.getId())) { -// continue; -// } -// Date fromDateItem = salaryArchiveItem.getEffectiveTime(); -// if (fromDateItem.after(endTempItem) || (!endTempItem.after(startItem) && !endTempItem.equals(startItem))) { -// continue; -// } -// SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); -// salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem) ? startItem : fromDateItem)).endDate(endTempItem).build()); -// //fixme 鎺掗櫎1鍙疯皟钖紝涔嬪墠鐨勫巻鍙插懆鏈熶负2022-01-01-2022-01-01杩欑鎯呭喌 -// if (!salaryArchiveItemData.getEffectiveDateRange().getFromDate().before(salaryArchiveItemData.getEffectiveDateRange().getEndDate())) { -// continue; -// } -// salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId()); -// salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue()); -// salaryItemValues.add(salaryArchiveItemData); -// endTempItem = fromDateItem; -// } -// endTempItem = endItem; -// } -// taxAgent.setSalaryItemValues(salaryItemValues); -// } -// taxAgents.add(taxAgent); -// } -// } -// salaryArchiveData.setTaxAgents(taxAgents); -// list.add(salaryArchiveData); -// }); -// -// return list; - // 寮濮嬫棩鏈 Date start = localDateRange.getFromDate(); diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java index 7719f7c15..f25a6f588 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.salaryarchive.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.I18n; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; @@ -12,6 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 钖祫妗f鍒楄〃 @@ -29,12 +27,14 @@ import java.util.Date; @SalaryTableOperate(index = "0", text = "缂栬緫"), @SalaryTableOperate(index = "1", text = "鍒犻櫎") }) +@Auth(page = "salaryArchive") public class SalaryArchiveListDTO { @TableTitle(title = "id", dataIndex = "id", key = "id") private Long id; @TableTitle(title = "浜哄憳淇℃伅琛ㄧ殑涓婚敭id", dataIndex = "employeeId", key = "employeeId") + @AuthField(fieldType = "employeeId") private Long employeeId; private Integer employeeType; @@ -51,6 +51,7 @@ public class SalaryArchiveListDTO { */ @TableTitle(title = "涓◣鎵g即涔夊姟浜", dataIndex = "taxAgentName", key = "taxAgentName") private String taxAgentName; + @AuthField(fieldType = "taxAgentId") private Long taxAgentId; /** @@ -124,4 +125,6 @@ public class SalaryArchiveListDTO { //涓绘璐﹀彿 0/null锛氫富璐﹀彿 1锛氭璐﹀彿 private Integer accountType; + private Set opts; + } diff --git a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java index a1762c54b..25ad7601a 100644 --- a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java +++ b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryarchive.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveAddTypeEnum; @@ -14,6 +15,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 钖祫妗f @@ -29,6 +31,7 @@ import java.util.List; @AllArgsConstructor //hrsa_salary_archive @ElogTransform(name = "钖祫妗f") +@Auth(page = "salaryArchive") public class SalaryArchivePO { /** @@ -136,4 +139,6 @@ public class SalaryArchivePO { */ @JsonIgnore private List runStatusList; + + private Set opts; } diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java index e84a890ee..cf06eec07 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java @@ -2,18 +2,16 @@ package com.engine.salary.entity.salarysob.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.salarysob.dto.SalarySobBasicFormDTO; -import com.engine.salary.entity.salarysob.dto.SalarySobListDTO; import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.SalaryCycleTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.SalaryI18nUtil; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Date; +import java.util.Objects; /** * 钖祫璐﹀ @@ -53,40 +51,17 @@ public class SalarySobBO { .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .taxAgentId(saveParam.getTaxAgentId()) + .taxAgentId(saveParam.getTaxAgentIds().get(0)) .build(); } - /** - * 钖祫璐﹀po杞崲鎴愬垪琛╠to - * - * @param salarySobs 钖祫璐﹀po - * @return - */ - public static List convert2ListDTO(Collection salarySobs,Map taxAgentIdTONameMap) { - if (CollectionUtils.isEmpty(salarySobs)) { - return Collections.emptyList(); - } - return salarySobs.stream() - .map(salarySobPO -> SalarySobListDTO.builder() - .id(salarySobPO.getId()) - .name(salarySobPO.getName()) - .taxAgentName(taxAgentIdTONameMap.get(salarySobPO.getTaxAgentId())) - .taxAgentId(salarySobPO.getTaxAgentId()) - .salaryCycle(buildSalaryCycle(salarySobPO)) - .disable(salarySobPO.getDisable()) - .description(salarySobPO.getDescription()) - .build()) - .collect(Collectors.toList()); - } - /** * 瑙f瀽钖祫璐﹀鍒楄〃鐨勮柂璧勫懆鏈 * * @param salarySobPO * @return */ - private static String buildSalaryCycle(SalarySobPO salarySobPO) { + public static String buildSalaryCycle(SalarySobPO salarySobPO) { String salaryCycleStr; SalaryCycleTypeEnum salaryCycleTypeEnum = SalaryCycleTypeEnum.parseByValue(salarySobPO.getSalaryCycleType()); if (salaryCycleTypeEnum == null) { @@ -130,7 +105,7 @@ public class SalarySobBO { * @param salarySobPO 钖祫璐﹀po * @return */ - public static SalarySobBasicFormDTO convert2FormDTO(SalarySobBasicFormDTO basicForm,SalarySobPO salarySobPO) { + public static SalarySobBasicFormDTO convert2FormDTO(SalarySobBasicFormDTO basicForm, SalarySobPO salarySobPO) { return basicForm .setId(salarySobPO.getId()) .setName(salarySobPO.getName()) @@ -142,7 +117,7 @@ public class SalarySobBO { .setAttendCycleType(salarySobPO.getAttendCycleType()) .setAttendCycleFromDay(salarySobPO.getAttendCycleFromDay()) .setSocialSecurityCycleType(salarySobPO.getSocialSecurityCycleType()) - .setTaxAgentId(salarySobPO.getTaxAgentId()) + .setTaxAgentIds(salarySobPO.getTaxAgentIds()) .setDescription(salarySobPO.getDescription()); } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java index 131668372..77b7221d7 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java @@ -30,16 +30,20 @@ import java.util.List; @AllArgsConstructor public class SalarySobBasicFormDTO { - //涓婚敭id") + //涓婚敭 @JsonSerialize(using = ToStringSerializer.class) private Long id; -// //钖祫璐﹀鐨勫悕绉") + /** + * 鍚嶇О + */ private String name; - private Long taxAgentId; -// private String taxAgentName; + /** + * 鎵g即涔夊姟浜 + */ + private List taxAgentIds; /** * 钖祫绫诲瀷 diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java index cb100ef55..4d892d643 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java @@ -12,6 +12,9 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; +import java.util.Set; + /** * 钖祫璐﹀鍒楄〃 *

Copyright: Copyright (c) 2022

@@ -47,7 +50,7 @@ public class SalarySobListDTO { private String taxAgentName; // 涓◣鎵g即涔夊姟浜篒D - private Long taxAgentId; + private List taxAgentIds; @SalaryTableColumn(text = "钖祫鍛ㄦ湡", width = "10%", column = "salaryCycle", transmethod = "com.engine.salary.transmethod.TransMethod.buildSalaryCycle", otherPara = "column:salaryCycleFromDay") @TableTitle(title = "钖祫鍛ㄦ湡", key = "salaryCycle", dataIndex = "salaryCycle") @@ -66,5 +69,5 @@ public class SalarySobListDTO { @SalaryTableColumn(text = "鎿嶄綔", width = "20%", column = "operate") @TableTitle(title = "鎿嶄綔", key = "operate", dataIndex = "operate") - private String operate; + private Set opts; } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java index d0357f414..ddaf3f41b 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java @@ -9,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * 钖祫璐﹀淇濆瓨鍙傛暟 @@ -36,8 +38,7 @@ public class SalarySobBasicSaveParam { /** * 涓◣鎵g即涔夊姟浜虹殑涓婚敭id */ - @DataCheck(require = true, message = "涓◣鎵g即涔夊姟浜虹殑涓婚敭id涓嶅厑璁镐负绌") - private Long taxAgentId; + private List taxAgentIds; /** * 鎵寰楅」鐩笉鍏佽涓虹┖ diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java index 19e213fdc..3e5cb8da9 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java @@ -3,6 +3,8 @@ package com.engine.salary.entity.salarysob.param; import com.engine.salary.util.valid.DataCheck; import lombok.Data; +import java.util.List; + /** * 钖祫璐﹀澶嶅埗鍙傛暟 *

Copyright: Copyright (c) 2022

@@ -27,9 +29,5 @@ public class SalarySobDuplicateParam { @DataCheck(require = true, max = 40, message = "鍚嶇О涓嶅厑璁镐负绌轰笖鍚嶇О涓嶈兘瓒呰繃40涓瓧绗﹂暱搴") private String name; - /** - * 涓◣鎵g即涔夊姟浜篿d - */ - @DataCheck(require = true, message = "涓◣鎵g即涔夊姟浜轰笉鍏佽涓虹┖") - private Long taxAgentId; + private List taxAgentIds; } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java new file mode 100644 index 000000000..d0555321d --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.salarysob.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + + +@Data +@EqualsAndHashCode(callSuper = true) +public class SalarySobQueryParam extends BaseQueryParam { + + /** + * 鍚嶇О + */ + private String name; + + /** + * 鎵g即涔夊姟浜篿d + */ + private Long taxAgentId; + + private List taxAgentIds; + + /** + * 鏁版嵁杩囨护绾у埆 + */ + private AuthFilterTypeEnum filterType; +} diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java index d4cc23467..d710dcf92 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java @@ -2,6 +2,8 @@ package com.engine.salary.entity.salarysob.po; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.util.valid.Compare; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; @@ -14,6 +16,8 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; +import java.util.List; +import java.util.Set; /** * 钖祫甯愬琛 @@ -26,6 +30,7 @@ import java.util.Date; @ElogTransform( name="钖祫璐﹀" ) //hrsa_salary_sob @XStreamAlias("SalarySob") +@Auth(page = "salarySob",checkType = AuthCheckTypeEnum.SOB,sobIdField="id") public class SalarySobPO { /** @@ -51,8 +56,11 @@ public class SalarySobPO { @ElogTransform( name="涓◣鎵g即涔夊姟浜篿d" ) @XStreamAlias("taxAgentId") @XStreamAsAttribute + @Deprecated private Long taxAgentId; + List taxAgentIds; + /** * 搴旂◣椤圭洰銆1:姝e父宸ヨ祫钖噾鎵寰 * @see IncomeCategoryEnum @@ -174,6 +182,8 @@ public class SalarySobPO { private String tenantKey; Collection ids; - Collection taxAgentIds; + + + private Set opts; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java new file mode 100644 index 000000000..de4a47135 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java @@ -0,0 +1,74 @@ +package com.engine.salary.entity.salarysob.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; +import java.util.List; + +/** + * 鏁版嵁 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SobTaxLinkPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 璐﹀id + */ + @ElogTransform(name = "璐﹀id") + private Long sobId; + + /** + * 鎵g即涔夊姟浜篿d + */ + @ElogTransform(name = "鎵g即涔夊姟浜篿d") + private Long taxAgentId; + + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + @ElogTransform(name = "鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎") + private Integer deleteType; + + + /** + * 鏇存柊鏃堕棿 + */ + @ElogTransform(name = "鏇存柊鏃堕棿") + private Date updateTime; + + /** + * 鍒涘缓鏃堕棿 + */ + @ElogTransform(name = "鍒涘缓鏃堕棿") + private Date createTime; + + /** + * 鍒涘缓浜 + */ + @ElogTransform(name = "鍒涘缓浜") + private Long creator; + + + /** + * 绉熸埛ID + */ + @ElogTransform(name = "绉熸埛ID") + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; + private List taxAgentIds; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java b/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java index 8aa28ab09..f2af2ac95 100644 --- a/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java +++ b/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java @@ -67,6 +67,7 @@ public class InsuranceAccountBO { .paymentOrganization(e.getPaymentOrganization() != null ? MapperProxyFactory.getProxy(TaxAgentMapper.class).getById(e.getPaymentOrganization()).getName() : "") .paymentOrganizationId(e.getPaymentOrganization()) .creator(e.getCreator()) + .opts(e.getOpts()) .build() ).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java b/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java index 23afba707..28939613b 100644 --- a/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java +++ b/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java @@ -2,7 +2,6 @@ package com.engine.salary.entity.siaccount.dto; import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.SalaryTableOperate; import com.engine.salary.annotation.TableTitle; import lombok.AllArgsConstructor; @@ -10,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * @Author weaver_cl * @Description: 绂忓埄鍙拌处鍒楄〃 @@ -111,6 +112,8 @@ public class InsuranceAccountBatchListDTO { @TableTitle(title = "澶囨敞", dataIndex = "remarks", key = "remarks") private String remarks; + private Set opts; + diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java index 310bd8e17..5b610e6da 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java @@ -1,13 +1,16 @@ package com.engine.salary.entity.siaccount.po; -import com.engine.salary.annotation.Encrypt; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.annotation.Encrypt; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** @@ -22,6 +25,7 @@ import java.util.Date; @AllArgsConstructor //hrsa_bill_batch @ElogTransform(name = "绂忓埄鍙拌处涓昏〃") +@Auth(page = "siAccount", checkType = AuthCheckTypeEnum.TAX, taxAgentIdField = "paymentOrganization") public class InsuranceAccountBatchPO { /** @@ -138,4 +142,8 @@ public class InsuranceAccountBatchPO { private String jobcall; private Long jobcallId; private String status; + + + private Set opts; + } diff --git a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java index a0c2d57e8..97f88e52c 100644 --- a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java +++ b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java @@ -1,12 +1,15 @@ package com.engine.salary.entity.siarchives.dto; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * @Author: sy @@ -17,6 +20,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, taxAgentIdField = "paymentOrganization", employeeIdField = "employeeId") public class InsuranceArchivesBaseHistoryDTO { private Long id; @@ -94,4 +98,7 @@ public class InsuranceArchivesBaseHistoryDTO { private String operatorName; @TableTitle(title = "鎿嶄綔鏃堕棿", dataIndex = "operateTime", key = "operateTime") private Date operateTime; + + + private Set opts; } diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java index 7de87c044..fcd72acd7 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.siarchives.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import lombok.AllArgsConstructor; @@ -10,6 +12,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * @Author: sy @@ -22,6 +25,7 @@ import java.util.Date; @AllArgsConstructor //hrsa_insurance_base_info @ElogTransform(name = "绂忓埄妗f涓昏〃") +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, employeeIdField = "employeeId", taxAgentIdField = "paymentOrganization") public class InsuranceArchivesBaseInfoPO { /** * 涓婚敭id @@ -107,4 +111,7 @@ public class InsuranceArchivesBaseInfoPO { //---------鏉′欢------- private Collection ids; private Collection employeeIds; + + + private Set opts; } diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java index 2fb5297ce..9df1f4c3a 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java @@ -1,13 +1,16 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; +import java.util.Set; /** * @Author weaver_cl @@ -19,6 +22,7 @@ import java.math.BigDecimal; @Builder @NoArgsConstructor @AllArgsConstructor +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, taxAgentIdField = "paymentOrganization", employeeIdField = "employeeId") public class InsuranceArchivesEmployeePO { private Long employeeId;//鍛樺伐id @@ -81,4 +85,6 @@ public class InsuranceArchivesEmployeePO { private Long fundId; private Long otherId; + + private Set opts; } diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index caf20dca6..fa550a4dd 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -2,6 +2,7 @@ package com.engine.salary.entity.taxagent.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.agency.po.PaymentAgencyPO; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.HrmStatus; @@ -83,44 +84,17 @@ public class TaxAgentBO { // String paymentAgency = SalaryI18nUtil.getI18nLabel(112448, "绀句繚绂忓埄浠g即鏈烘瀯"); String description = SalaryI18nUtil.getI18nLabel(84961, "澶囨敞"); String sortedIndex = SalaryI18nUtil.getI18nLabel(84962, "鏄剧ず椤哄簭"); + + columns.add(new Column(name, "name", "name")); + columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); if (isOpenDevolution) { - columns.add(new Column(name, "name", "name%")); - columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); - columns.add(new Column(admins, "admins", "admins%")); -// columns.add(new Column(subAdmins, "subAdmins", "20%")); -// columns.add(new Column(paymentAgency, "paymentAgency", "30%")); - columns.add(new Column(description, "description", "name")); - columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); - } else { - columns.add(new Column(name, "name", "name")); - columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); -// columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); - columns.add(new Column(description, "description", "description")); - columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); + columns.add(new Column(admins, "admins", "admins")); } + columns.add(new Column(description, "description", "description")); + columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); listPage.setColumns(columns); } -// private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { -// List> permissionList = Lists.newArrayList(); -// for (int i = 0; i < recordSize; i++) { -// List permissions = Lists.newArrayList(); -// for (int j = 0; j < operateSize; j++) { -// permissions.add(new Permission(true, false)); -// } -// permissionList.add(permissions); -// } -// return permissionList; -// } -// -// private static List getDefaultCheckBoxPermission(int recordSize) { -// List permissionList = Lists.newArrayList(); -// for (int i = 0; i < recordSize; i++) { -// permissionList.add(new Permission(true, false)); -// } -// return permissionList; -// } - /** * 琛ㄦ暟鎹浆鍒楄〃鏁版嵁 * @@ -146,8 +120,8 @@ public class TaxAgentBO { * @param taxAgents * @return */ - public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, String setLabel) { - return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null, setLabel); + public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS) { + return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null); } /** @@ -157,9 +131,8 @@ public class TaxAgentBO { * @return */ public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, - String setLabel) { - return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList, setLabel); + List adminList) { + return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList); } /** @@ -171,7 +144,7 @@ public class TaxAgentBO { */ public static List> convertToTableListDTO(Boolean isDevolution, List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, String setLabel) { + List adminList) { if (CollectionUtils.isEmpty(taxAgents)) { return Collections.emptyList(); } @@ -180,12 +153,13 @@ public class TaxAgentBO { Map map = new LinkedHashMap<>(); map.put("id", e.getId()); map.put("name", e.getName()); - map.put("employeeRange", setLabel); + map.put("employeeRange", "璁剧疆"); +// map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList()).stream().map(AuthRolePO::getName).collect(Collectors.joining(","))); if (isDevolution) { List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); map.put("admins", CollectionUtils.isEmpty(admins) ? "" : Joiner.on(",").join((Iterable) admins)); - map.put("subAdmins", setLabel); + map.put("subAdmins", "璁剧疆"); } map.put("paymentAgency", buildPaymentAgency(e.getPaymentAgency(), paymentAgencyPOS)); map.put("description", e.getDescription()); @@ -441,7 +415,6 @@ public class TaxAgentBO { handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange); } } - return handleResult; } diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java index 65b688baa..f84602b40 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.taxagent.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamOmitField; @@ -11,9 +13,10 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** - * 涓◣鎵g即涔夊姟浜 + * 涓◣鎵g即涔夊姟浜 hrsa_tax_agent *

Copyright: Copyright (c) 2022

*

Company: 娉涘井杞欢

* @@ -24,10 +27,9 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -//hrsa_tax_agent") -//涓◣鎵g即涔夊姟浜鸿〃") @ElogTransform(name = "涓◣鎵g即涔夊姟浜") @XStreamAlias("TaxAgent") +@Auth(page = "", checkType = AuthCheckTypeEnum.TAX,taxAgentIdField = "id") public class TaxAgentPO { /** @@ -109,4 +111,6 @@ public class TaxAgentPO { private Collection ids; + + Set opts; } diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index a75611dda..73385423c 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -70,6 +70,7 @@ public class TaxDeclarationBO { .operateEmployeeName(employeeNameMap.getOrDefault(taxDeclarationPO.getCreator(), "")) .operateTime(SalaryDateUtil.getFormatLocalDateTime(taxDeclarationPO.getCreateTime())) .description(taxDeclarationPO.getDescription()) + .opts(taxDeclarationPO.getOpts()) .build(); }) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java index f52ce6a86..5104871b5 100644 --- a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java +++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java @@ -13,6 +13,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 涓◣鐢虫姤璁板綍鍒楄〃 @@ -63,4 +64,7 @@ public class TaxDeclarationListDTO { @TableTitle(title = "澶囨敞", dataIndex = "description", key = "description") private String description; + + private Set opts; + } diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java index 101b6dd52..6cf891cb3 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.taxdeclaration.po; +import com.engine.salary.annotation.Auth; import com.engine.salary.common.LocalDateRange; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -9,6 +11,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * 涓◣鐢虫姤璁板綍 @@ -23,6 +26,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor //hrsa_tax_declaration +@Auth(page = "taxDeclaration",checkType = AuthCheckTypeEnum.TAX) public class TaxDeclarationPO { /** @@ -108,4 +112,5 @@ public class TaxDeclarationPO { private Collection taxAgentIds; + private Set opts; } diff --git a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java new file mode 100644 index 000000000..97538076c --- /dev/null +++ b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java @@ -0,0 +1,59 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; + +import java.util.Objects; + +/** + * 鏉冮檺楠岃瘉鏂瑰紡 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum AuthCheckTypeEnum implements BaseEnum { + + + TAX_EMP("TAX_EMP", "鎵g即涔夊姟浜哄拰浜哄憳娣峰悎楠岃瘉", 87627), + EMP("EMP", "浜哄憳楠岃瘉", 87626), + TAX("TAX", "鎵g即涔夊姟浜洪獙璇", 87626), + SOB("SOB", "璐﹀楠岃瘉", 87626); + + + private String value; + private String defaultLabel; + private int labelId; + + AuthCheckTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static AuthCheckTypeEnum parseByValue(String value) { + for (AuthCheckTypeEnum typeEnum : AuthCheckTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java new file mode 100644 index 000000000..c9af4e243 --- /dev/null +++ b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java @@ -0,0 +1,59 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; + +import java.util.Objects; + +/** + * 鏉冮檺杩囨护 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum AuthFilterTypeEnum implements BaseEnum { + + DATA_OPT("DATA_OPT", "鏁版嵁&鍔熻兘鏉冮檺", 87626), + QUERY_DATA("QUERY_DATA", "鑾峰彇鍙煡璇㈡暟鎹", 87627), + ADMIN_DATA("ADMIN_DATA", "鑾峰彇鍙鐞嗘暟鎹", 87627), + NO_AUTH("ADMIN_DATA", "鑾峰彇鍙鐞嗘暟鎹", 87627); + + + + private String value; + private String defaultLabel; + private int labelId; + + AuthFilterTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static AuthFilterTypeEnum parseByValue(String value) { + for (AuthFilterTypeEnum typeEnum : AuthFilterTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/DataLinkEnum.java b/src/com/engine/salary/enums/auth/DataLinkEnum.java new file mode 100644 index 000000000..e99cbf9a6 --- /dev/null +++ b/src/com/engine/salary/enums/auth/DataLinkEnum.java @@ -0,0 +1,79 @@ +package com.engine.salary.enums.auth; + +import cn.hutool.core.collection.CollectionUtil; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +/** + * 鎴栬呫佸苟涓斻佹帓闄 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum DataLinkEnum implements BaseEnum { + + + OR(1, "骞堕泦杩愮畻", 87627) { + @Override + public Set calculation(Collection coll1, Collection coll2) { + return new HashSet<>(CollectionUtil.union(coll1, coll2)); + } + }, + AND(2, "浜ら泦杩愮畻", 87626) { + @Override + public Set calculation(Collection coll1, Collection coll2) { + return new HashSet<>(CollectionUtil.intersection(coll1, coll2)); + } + }, + NOT_IN(3, "琛ラ泦杩愮畻", 87626) { + @Override + public Set calculation(Collection coll1, Collection coll2) { + return new HashSet<>(CollectionUtil.disjunction(coll1, coll2)); + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + DataLinkEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract Set calculation(Collection coll1, Collection coll2); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static DataLinkEnum parseByValue(int value) { + for (DataLinkEnum typeEnum : DataLinkEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java new file mode 100644 index 000000000..056b42fd4 --- /dev/null +++ b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java @@ -0,0 +1,176 @@ +package com.engine.salary.enums.auth; + +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.taxagent.po.TaxAgentEmpPO; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import com.engine.salary.service.impl.TaxAgentEmpServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; +import com.google.common.collect.Lists; +import weaver.conn.RecordSet; + +import java.util.*; + +/** + * 瀵硅薄绫诲瀷锛1锛氫汉鍛樸2锛氶儴闂ㄣ3锛氬矖浣嶃4锛氬垎閮ㄣ5锛氳鑹层6锛氬畨鍏ㄧ骇鍒 銆7锛氭墍鏈変汉 銆8锛氱櫥褰曚汉銆9锛氳处濂椼10锛歴ql + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum DataTargetTypeEnum implements BaseEnum { + + + EMP(1, "浜哄憳", 87627) { + @Override + public Set getEmpIds(String target, Object... param) { + Set list = new HashSet<>(); + list.add(Long.valueOf(target)); + return list; + } + }, + DEPARTMENT(2, "閮ㄩ棬", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return new HashSet<>(salaryEmployeeService.listByDepartment(Collections.singletonList(Long.valueOf(target)))); + } + }, + JOB(3, "宀椾綅", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return new HashSet<>(salaryEmployeeService.listByJob(Collections.singletonList(Long.valueOf(target)))); + } + }, + SUB_COMPANY(4, "鍒嗛儴", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return new HashSet<>(salaryEmployeeService.listBySubCompany(Collections.singletonList(Long.valueOf(target)))); + } + }, + ROLE(5, "瑙掕壊", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + Set memberList = new HashSet<>(); + List ids = hrmCommonService.getRoleMembers(target, "2"); + ids.forEach(id -> memberList.add(Long.parseLong(id.toString()))); + return memberList; + } + }, + LEVEL(6, "瀹夊叏绾у埆", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + String[] split = target.split("-"); + int minLevel = split[0] == null ? 0 : Integer.parseInt(split[0]); + int maxLevel = split[1] == null ? 100 : Integer.parseInt(split[1]); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute("select id from hrmresource where level between " + minLevel + " and " + maxLevel + " and status not in (7) and (accounttype is null or accounttype = 0) ")) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, +// ALL(7, "鎵鏈変汉", 87626) { +// @Override +// public Set getEmpIds(String target, Object... param) { +// Set memberList = new HashSet<>(); +// RecordSet rs = new RecordSet(); +// if (rs.execute("select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) ")) { +// while (rs.next()) { +// memberList.add(Long.parseLong(rs.getString("id"))); +// } +// } +// return memberList; +// } +// }, +// LOGIN_PERSON(8, "鐧诲綍浜", 87626) { +// //鍙傛暟1锛岀櫥褰曚汉淇℃伅 +// @Override +// public Set getEmpIds(String target, Object... param) { +// LoginPersonTargetTypeEnum loginPersonTargetTypeEnum = LoginPersonTargetTypeEnum.parseByValue(Integer.parseInt(target)); +// return loginPersonTargetTypeEnum.getEmpIds((DataCollectionEmployee) param[0]); +// } +// }, + SOB(9, "璐﹀", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + List employeeList = salaryEmployeeService.listBySalarySobId(Long.valueOf(target),true); + return SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); + } + }, + TAX(10, "鎵g即涔夊姟浜", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + TaxAgentEmpServiceImpl taxAgentEmpServiceImpl = new TaxAgentEmpServiceImpl(); + List taxIds = Lists.newArrayList(Long.valueOf(target)); + List taxAgentEmpPOS = taxAgentEmpServiceImpl.listByTaxAgentIds(taxIds, UseEmployeeTypeEnum.ORG); + return SalaryEntityUtil.properties(taxAgentEmpPOS, TaxAgentEmpPO::getEmployeeId); + } + }, + SQL(11, "SQL", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + //鍙傛暟1锛岀櫥褰曚汉淇℃伅 +// DataCollectionEmployee employee = (DataCollectionEmployee) param[0]; +// target = target.replaceAll("$uid$", Util.null2String(employee.getEmployeeId())); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(target)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + DataTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract Set getEmpIds(String target, Object... param); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static DataTargetTypeEnum parseByValue(int value) { + for (DataTargetTypeEnum typeEnum : DataTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java b/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java new file mode 100644 index 000000000..75c97749e --- /dev/null +++ b/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java @@ -0,0 +1,123 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import weaver.conn.RecordSet; + +import java.util.*; + +/** + * 鐧诲綍浜轰俊鎭被鍨 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum LoginPersonTargetTypeEnum implements BaseEnum { + + + self(1, "鏈汉", 87627) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + Set memberList = new HashSet<>(); + memberList.add(employee.getEmployeeId()); + return memberList; + } + }, + SUBORDINATE(2, "涓嬪睘", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and managerstr like '%," + employee.getEmployeeId() + ",%' and "; + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + DEPARTMENT(3, "鏈儴闂", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and departmentid =" + employee.getDepartmentId(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + SUB_COMPANY(4, "鏈垎閮", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and subcompanyid1 =" + employee.getSubcompanyid(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + JOB(5, "鏈矖浣", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and jobtitle =" + employee.getJobtitleId(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + LoginPersonTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract Set getEmpIds(DataCollectionEmployee employee); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static LoginPersonTargetTypeEnum parseByValue(int value) { + for (LoginPersonTargetTypeEnum typeEnum : LoginPersonTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java b/src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java new file mode 100644 index 000000000..9c02cfef6 --- /dev/null +++ b/src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java @@ -0,0 +1,121 @@ +package com.engine.salary.enums.auth; + +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import weaver.conn.RecordSet; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 鎴愬憳绫诲瀷锛1锛氫汉鍛樸2锛氶儴闂ㄣ3锛氬矖浣嶃4锛氬垎閮ㄣ5锛氳鑹层6锛歴ql + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum MemberTargetTypeEnum implements BaseEnum { + + + EMP(1, "浜哄憳", 87627) { + @Override + public List getEmpIds(Set targets) { + return targets.stream().map(Long::valueOf).collect(Collectors.toList()); + } + }, + DEPARTMENT(2, "閮ㄩ棬", 87626) { + @Override + public List getEmpIds(Set targets) { + List deptIds = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByDepartment(deptIds); + } + }, + JOB(3, "宀椾綅", 87626) { + @Override + public List getEmpIds(Set targets) { + List ids = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByJob(ids); + } + }, + SUB_COMPANY(4, "鍒嗛儴", 87626) { + @Override + public List getEmpIds(Set targets) { + List ids = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listBySubCompany(ids); + } + }, + ROLE(5, "瑙掕壊", 87626) { + @Override + public List getEmpIds(Set targets) { + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List memberList = new ArrayList<>(); + targets.forEach(roleId -> { + memberList.addAll(hrmCommonService.getRoleMembers(roleId, "2")); + }); + return memberList.stream().map(id -> Long.parseLong(id.toString())).collect(Collectors.toList()); + } + }, + SQL(6, "sql", 87626) { + @Override + public List getEmpIds(Set targets) { + List memberList = new ArrayList<>(); + targets.forEach(sql -> { + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + }); + return memberList; + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + MemberTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract List getEmpIds(Set targets); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static MemberTargetTypeEnum parseByValue(int value) { + for (MemberTargetTypeEnum typeEnum : MemberTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java b/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java new file mode 100644 index 000000000..d4bfc372d --- /dev/null +++ b/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java @@ -0,0 +1,75 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; + +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 璧勬簮绫诲瀷锛1锛氭墸缂翠箟鍔′汉 2锛氳处濂 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum ResourceTargetTypeEnum implements BaseEnum { + + + TAX_AGENT(1, "鎵g即涔夊姟浜", 87627) { + @Override + public List getEmpIds(Set targets) { + return targets.stream().map(Long::valueOf).collect(Collectors.toList()); + } + }, + SOB(2, "璐﹀", 87626) { + @Override + public List getEmpIds(Set targets) { + List deptIds = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByDepartment(deptIds); + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + ResourceTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract List getEmpIds(Set targets); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static ResourceTargetTypeEnum parseByValue(int value) { + for (ResourceTargetTypeEnum typeEnum : ResourceTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("鏈壘鍒板搴旂殑鏋氫妇"); + } +} diff --git a/src/com/engine/salary/enums/push/PushItemFieldEnum.java b/src/com/engine/salary/enums/push/PushItemFieldEnum.java new file mode 100644 index 000000000..375e21823 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushItemFieldEnum.java @@ -0,0 +1,125 @@ +package com.engine.salary.enums.push; + +import cn.hutool.core.util.NumberUtil; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.util.SalaryDateUtil; +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Objects; + +import static com.engine.salary.util.SalaryDateUtil.DATE_FORMATTER_PATTERN; + +/** + * 鎺ㄩ佹暟鎹潵婧 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushItemFieldEnum implements BaseEnum { + + NUMBER(1, "鏁板", 87625) { + @Override + public Object convertValue(String value) { + if (NumberUtil.isNumber(value)) { + return new BigDecimal(value).toPlainString(); + } + return "null"; + } + }, + TEXT(2, "鏂囨湰", 85393) { + @Override + public Object convertValue(String value) { + return String.format("'%s'",value); + } + }, + // DATE(3, "鏃ユ湡", 85393) { +// @Override +// public Object convertValue(String value) { +// +// //to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss') +// return value; +// } +// }, + YEAR(4, "鏃ユ湡鏂囨湰-骞", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { + value = value.substring(0, 4); + } + return String.format("'%s'",value); + } + }, + YEAR_MONTH(5, "鏃ユ湡鏂囨湰-骞存湀", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { + value = value.substring(0, 7); + } + return String.format("'%s'",value); + } + }, + YEAR_MONTH_DAY(6, "鏃ユ湡鏂囨湰-骞存湀鏃", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { + value = value.substring(0, 10); + } + return String.format("'%s'",value); + } + }; + + private int value; + + private String defaultLabel; + + private int labelId; + + PushItemFieldEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public abstract Object convertValue(String value); + + public static PushItemFieldEnum parseByValue(int value) { + for (PushItemFieldEnum salaryDataSourceEnum : PushItemFieldEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return TEXT; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushItemFieldEnum[] enumAry = PushItemFieldEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java new file mode 100644 index 000000000..47245a544 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -0,0 +1,70 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 鎺ㄩ佽褰曠姸鎬 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushRecordDetailStatusEnum implements BaseEnum { + PREPARE(0, "寰呮帹閫", 87625), + SUCCESS(1, "鎺ㄩ佹垚鍔", 85393), + FAIL(2, "鎺ㄩ佸け璐", 85393), + WITHDRAW(3, "宸叉挙鍥", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushRecordDetailStatusEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushRecordDetailStatusEnum parseByValue(int value) { + for (PushRecordDetailStatusEnum salaryDataSourceEnum : PushRecordDetailStatusEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushRecordDetailStatusEnum[] enumAry = PushRecordDetailStatusEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java new file mode 100644 index 000000000..7b537e28e --- /dev/null +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -0,0 +1,73 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 鎺ㄩ佽褰曠姸鎬 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushRecordStatusEnum implements BaseEnum { + DATA_PREPARE(0, "鏁版嵁鏋勫缓", 87625), + DATA_FINISH(1, "鏋勫缓瀹屾瘯", 87625), + RUN_WAITING(2, "绛夊緟鎵ц", 87625), + RUN_PROGRESS(3, "鎵ц涓", 85393), + RUN_COMPLETE(4, "鎵ц瀹屾瘯", 85393), + RUN_SUCCESS(5, "鎵ц鎴愬姛", 85393), + RUN_FAIL(6, "鎵ц澶辫触", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushRecordStatusEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushRecordStatusEnum parseByValue(int value) { + for (PushRecordStatusEnum salaryDataSourceEnum : PushRecordStatusEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushRecordStatusEnum[] enumAry = PushRecordStatusEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushRecordTypeEnum.java b/src/com/engine/salary/enums/push/PushRecordTypeEnum.java new file mode 100644 index 000000000..9fc79f308 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushRecordTypeEnum.java @@ -0,0 +1,68 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 鎺ㄩ佽褰曠姸鎬 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushRecordTypeEnum implements BaseEnum { + PUSH(0, "鎺ㄩ", 85393), + WITHDRAW(1, "鎾ゅ洖", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushRecordTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushRecordTypeEnum parseByValue(int value) { + for (PushRecordTypeEnum salaryDataSourceEnum : PushRecordTypeEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushRecordTypeEnum[] enumAry = PushRecordTypeEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java b/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java index 79a99b1f9..72d3e6dfe 100644 --- a/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java +++ b/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java @@ -52,6 +52,6 @@ public enum SalarySQLReferenceEnum implements BaseEnum { return referenceEnum; } } - return null; + return EMPLOYEE_INFO; } } diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.java b/src/com/engine/salary/mapper/auth/AuthDataMapper.java new file mode 100644 index 000000000..fde50bd66 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.java @@ -0,0 +1,79 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthDataPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthDataMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthDataPO authData); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthDataPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authData 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthDataPO authData); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authData 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthDataPO authData); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authData 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthDataPO authData); + + /** + * 鍒犻櫎璁板綍 + * + * @param authData 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthDataPO authData); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml new file mode 100644 index 000000000..b63821cba --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.link + , t.target_type + , t.target + , t.target_name + , t.sorted_index + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_data + + + + id, + + + role_id, + + + link, + + + target_type, + + + target, + + + target_name, + + + sorted_index, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{link}, + + + #{targetType}, + + + #{target}, + + + #{targetName}, + + + #{sortedIndex}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_data + + role_id=#{roleId}, + link=#{link}, + target_type=#{targetType}, + target=#{target}, + target_name=#{targetName}, + sorted_index=#{sortedIndex}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_data + + + role_id=#{roleId}, + + + link=#{link}, + + + target_type=#{targetType}, + + + target=#{target}, + + + target_name=#{targetName}, + + + sorted_index=#{sortedIndex}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_data + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_data + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_auth_data + SET delete_type = 1 + WHERE delete_type = 0 + AND role_id=#{roleId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java new file mode 100644 index 000000000..70533cafa --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -0,0 +1,27 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.dto.AuthTreeDTO; +import com.engine.salary.entity.auth.dto.SobOptAuth; +import com.engine.salary.entity.auth.dto.TaxEmpOptAuth; +import com.engine.salary.entity.auth.dto.TaxOptAuth; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface AuthMapper { + + List getTaxEmpOptAuth(@Param("uid") Long uid, @Param("page") String page); + + List getTaxOptAuth(@Param("uid") Long uid, @Param("page") String page); + + List getSobOptAuth(@Param("uid") Long uid, @Param("page") String page); + + List getLimitSobs(@Param("uid") Long uid); + + List getLimitTaxAgents(@Param("uid") Long uid); + + List getOptsByPage(@Param("uid") Long uid, @Param("page") String page); + + AuthTreeDTO authTree(AuthTreeQueryParam param); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml new file mode 100644 index 000000000..f1ce490b1 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.java b/src/com/engine/salary/mapper/auth/AuthMemberMapper.java new file mode 100644 index 000000000..a5cabd93f --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.java @@ -0,0 +1,78 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthMemberPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthMemberMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthMemberPO authMember); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthMemberPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authMember 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthMemberPO authMember); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authMember 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthMemberPO authMember); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authMember 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthMemberPO authMember); + + /** + * 鍒犻櫎璁板綍 + * + * @param authMember 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthMemberPO authMember); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml new file mode 100644 index 000000000..8bde81000 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + t.id + , t.role_id + , t.target_type + , t.target + , t.target_name + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_member + + + + id, + + + role_id, + + + target_type, + + + target, + + + target_name, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{targetType}, + + + #{target}, + + + #{targetName}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_member + + role_id=#{roleId}, + target_type=#{targetType}, + target=#{target}, + target_name=#{targetName}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_member + + + role_id=#{roleId}, + + + target_type=#{targetType}, + + + target=#{target}, + + + target_name=#{targetName}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_member + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_auth_member + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + UPDATE hrsa_auth_member + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthOptMapper.java b/src/com/engine/salary/mapper/auth/AuthOptMapper.java new file mode 100644 index 000000000..7dcc172ea --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthOptMapper.java @@ -0,0 +1,79 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthOptPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthOptMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthOptPO authOpt); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthOptPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authOpt 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthOptPO authOpt); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authOpt 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthOptPO authOpt); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authOpt 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthOptPO authOpt); + + /** + * 鍒犻櫎璁板綍 + * + * @param authOpt 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthOptPO authOpt); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthOptMapper.xml b/src/com/engine/salary/mapper/auth/AuthOptMapper.xml new file mode 100644 index 000000000..8ee16cf89 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthOptMapper.xml @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.page + , t.opt + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_opt + + + + id, + + + role_id, + + + page, + + + opt, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{page}, + + + #{opt}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_opt + + role_id=#{roleId}, + page=#{page}, + opt=#{opt}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_opt + + + role_id=#{roleId}, + + + page=#{page}, + + + opt=#{opt}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_opt + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_opt + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_auth_opt + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthResourceMapper.java b/src/com/engine/salary/mapper/auth/AuthResourceMapper.java new file mode 100644 index 000000000..36d44af71 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthResourceMapper.java @@ -0,0 +1,78 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthResourcePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthResourceMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthResourcePO authLimit); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthResourcePO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authLimit 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthResourcePO authLimit); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authLimit 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthResourcePO authLimit); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authLimit 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthResourcePO authLimit); + + /** + * 鍒犻櫎璁板綍 + * + * @param authLimit 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthResourcePO authLimit); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml new file mode 100644 index 000000000..ed6c47fa9 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + t.create_time + , t.creator + , t.delete_type + , t.id + , t.role_id + , t.target + , t.target_name + , t.target_type + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_resource + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + role_id, + + + target, + + + target_name, + + + target_type, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{roleId}, + + + #{target}, + + + #{targetName}, + + + #{targetType}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_auth_resource + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + role_id=#{roleId}, + target=#{target}, + target_name=#{targetName}, + target_type=#{targetType}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_resource + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + role_id=#{roleId}, + + + target=#{target}, + + + target_name=#{targetName}, + + + target_type=#{targetType}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_resource + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_auth_resource + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + UPDATE hrsa_auth_resource + SET delete_type = 1 + WHERE delete_type = 0 + AND role_id=#{roleId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java new file mode 100644 index 000000000..8d3f04621 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java @@ -0,0 +1,87 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.po.AuthRoleDataPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleDataMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthRoleDataPO authRoleData); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthRoleDataPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authRoleData 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthRoleDataPO authRoleData); + + /** + * 鎵归噺鎻掑叆 + * + * @param authRoleData + */ + void batchInsert(@Param("collection") List authRoleData); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authRoleData 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthRoleDataPO authRoleData); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authRoleData 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthRoleDataPO authRoleData); + + /** + * 鍒犻櫎璁板綍 + * + * @param authRoleData 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthRoleDataPO authRoleData); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + + List listRoleData(Long roleId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml new file mode 100644 index 000000000..027331605 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.employee_id + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role_data + + + + id, + + + role_id, + + + employee_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{employeeId}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + + INSERT INTO hrsa_auth_role_data + ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + + INSERT INTO hrsa_auth_role_data ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.roleId,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + + + INSERT INTO hrsa_auth_role_data ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_auth_role_data + + role_id=#{roleId}, + employee_id=#{employeeId}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_data + + + role_id=#{roleId}, + + + employee_id=#{employeeId}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_data + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_role_data + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + delete from hrsa_auth_role_data + WHERE role_id = #{roleId} AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java new file mode 100644 index 000000000..eea6e0ab0 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java @@ -0,0 +1,87 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.po.AuthRoleEmpPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleEmpMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthRoleEmpPO authRoleEmp); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthRoleEmpPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authRoleEmp 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthRoleEmpPO authRoleEmp); + + /** + * 鎵归噺鎻掑叆 + * + * @param authRoleEmp + */ + void batchInsert(@Param("collection") List authRoleEmp); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authRoleEmp 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthRoleEmpPO authRoleEmp); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authRoleEmp 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthRoleEmpPO authRoleEmp); + + /** + * 鍒犻櫎璁板綍 + * + * @param authRoleEmp 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthRoleEmpPO authRoleEmp); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + /** + * 鏍规嵁瑙掕壊id鍒犻櫎 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + + List getByRoleId(Long roleId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml new file mode 100644 index 000000000..db7b3fb2f --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.employee_id + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role_emp + + + + id, + + + role_id, + + + employee_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{employeeId}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + + INSERT INTO hrsa_auth_role_emp + ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + + INSERT INTO hrsa_auth_role_emp ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.roleId,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + + + INSERT INTO hrsa_auth_role_emp ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_auth_role_emp + + role_id=#{roleId}, + employee_id=#{employeeId}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_emp + + + role_id=#{roleId}, + + + employee_id=#{employeeId}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_emp + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + + UPDATE hrsa_auth_role_emp + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + UPDATE hrsa_auth_role_emp + SET delete_type=1 + WHERE role_id = #{roleId} + AND delete_type = 0 + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java new file mode 100644 index 000000000..1e958fb8f --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java @@ -0,0 +1,76 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; +import com.engine.salary.entity.auth.po.AuthRolePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(AuthRolePO authRole); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + AuthRolePO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param authRole 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(AuthRolePO authRole); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param authRole 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(AuthRolePO authRole); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param authRole 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(AuthRolePO authRole); + + /** + * 鍒犻櫎璁板綍 + * + * @param authRole 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(AuthRolePO authRole); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + + List list(AuthRoleListQueryParam param); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml new file mode 100644 index 000000000..8a25166da --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.name + , t.description + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role + + + + id, + + + name, + + + description, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{name}, + + + #{description}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_role + + name=#{name}, + description=#{description}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role + + + name=#{name}, + + + description=#{description}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_role + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index d4185e60e..73cb03b9d 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -176,6 +176,12 @@ public interface EmployMapper { JobCallInfo getJobCallInfoById(@Param("jobCallId") Long jobCallId); + List listBySubCompany(@Param("subCompanyIds") List subCompanyIds); + + List listByDepartment(@Param("departmentIds") List departmentIds); + + List listByJob(@Param("jobIds") List jobIds); + /** * 鏍规嵁鐢ㄦ埛鍚嶅拰宸ュ彿妯$硦鏌ヨ * @param keyword diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 3f1be17d8..fc349782c 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -38,7 +38,8 @@ - select e.id as employeeId, e.lastname as username, e.certificatenum as idNo, @@ -622,6 +623,39 @@ + + + + + + + SELECT + + FROM hrsa_push_record_detail t + WHERE delete_type = 0 + + + + + + + + + + + + INSERT INTO hrsa_push_record_detail + + + + acct_emp_id, + + + create_time, + + + creator, + + + delete_type, + + + execute, + + + id, + + + record_id, + + + status, + + + tenant_key, + + + update_time, + + + + + #{acctEmpId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{execute}, + + + #{id}, + + + #{recordId}, + + + #{status}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record_detail + + acct_emp_id=#{acctEmpId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + execute=#{execute}, + record_id=#{recordId}, + status=#{status}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + + + acct_emp_id=#{acctEmpId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + execute=#{execute}, + + + record_id=#{recordId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record_detail + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_push_record_detail + SET delete_type=1 + WHERE record_id=#{recordId} + AND delete_type = 0 + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.java b/src/com/engine/salary/mapper/push/PushRecordMapper.java new file mode 100644 index 000000000..dfcf7fd05 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.java @@ -0,0 +1,75 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushRecordPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushRecordMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(PushRecordPO pushRecord); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + PushRecordPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param pushRecord 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(PushRecordPO pushRecord); + + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param pushRecord 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(PushRecordPO pushRecord); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param pushRecord 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(PushRecordPO pushRecord); + + /** + * 鍒犻櫎璁板綍 + * + * @param pushRecord 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(PushRecordPO pushRecord); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + int countBeforeBatch(Long batchId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml new file mode 100644 index 000000000..7009997ee --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + t + . + acct_record_id + , t.mode_id + , t.table_name + , t.create_time + , t.creator + , t.delete_type + , t.id + , t.name + , t.setting_id + , t.status + , t.tenant_key + , t.type + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_record + + + + mode_id, + + + table_name, + + + acct_record_id, + + + create_time, + + + creator, + + + delete_type, + + + id, + + + name, + + + setting_id, + + + status, + + + tenant_key, + + + type, + + + update_time, + + + + + #{modeId}, + + + #{tableName}, + + + #{acctRecordId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{name}, + + + #{settingId}, + + + #{status}, + + + #{tenantKey}, + + + #{type}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record + + mode_id=#{modeId}, + table_name=#{tableName}, + acct_record_id=#{acctRecordId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + setting_id=#{settingId}, + status=#{status}, + tenant_key=#{tenantKey}, + type=#{type}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + + + mode_id=#{modeId}, + + + table_name=#{tableName}, + + + acct_record_id=#{acctRecordId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + setting_id=#{settingId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + type=#{type}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.java b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java new file mode 100644 index 000000000..3f550b532 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingItemPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingItemMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(PushSettingItemPO pushSettingItem); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + PushSettingItemPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param pushSettingItem 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param pushSettingItem 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(PushSettingItemPO pushSettingItem); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param pushSettingItem 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 鍒犻櫎璁板綍 + * + * @param pushSettingItem 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(PushSettingItemPO pushSettingItem); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml new file mode 100644 index 000000000..f708ed48c --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.field_name + , t.field_type + , t.id + , t.item + , t.item_name + , t.source + , t.setting_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting_item + + + + create_time, + + + creator, + + + delete_type, + + + field_name, + + + field_type, + + + id, + + + item, + + + item_name, + + + source, + + + setting_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{fieldName}, + + + #{fieldType}, + + + #{id}, + + + #{item}, + + + #{itemName}, + + + #{source}, + + + #{settingId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting_item + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + field_name=#{fieldName}, + field_type=#{fieldType}, + item=#{item}, + item_name=#{itemName}, + source=#{source}, + setting_id=#{settingId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + field_name=#{fieldName}, + + + field_type=#{fieldType}, + + + item=#{item}, + + + item_name=#{itemName}, + + + source=#{source}, + + + setting_id=#{settingId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting_item + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.java b/src/com/engine/salary/mapper/push/PushSettingMapper.java new file mode 100644 index 000000000..dcfe71ccc --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(PushSettingPO pushSetting); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + PushSettingPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param pushSetting 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(PushSettingPO pushSetting); + + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param pushSetting 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(PushSettingPO pushSetting); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param pushSetting 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(PushSettingPO pushSetting); + + /** + * 鍒犻櫎璁板綍 + * + * @param pushSetting 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(PushSettingPO pushSetting); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.xml b/src/com/engine/salary/mapper/push/PushSettingMapper.xml new file mode 100644 index 000000000..c421fa71f --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + able + , t.create_time + , t.creator + , t.delete_type + , t.name + , t.id + , t.mode_id + , t.mode_name + , t.salary_sob_ids + , t.table_name + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting + + + + able, + + + create_time, + + + creator, + + + delete_type, + + + name, + + + id, + + + mode_id, + + + mode_name, + + + salary_sob_ids, + + + table_name, + + + tenant_key, + + + update_time, + + + + + #{able}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{name}, + + + #{id}, + + + #{modeId}, + + + #{modeName}, + + + #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, + + + #{tableName}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting + + able=#{able}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + mode_id=#{modeId}, + mode_name=#{modeName}, + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, + table_name=#{tableName}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + + + able=#{able}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + mode_id=#{modeId}, + + + mode_name=#{modeName}, + + + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, + + + table_name=#{tableName}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 20f979699..010c05fa8 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -18,6 +18,24 @@ + + + + + + + + + + + + + + + + + + t @@ -57,73 +75,75 @@ - @@ -57,7 +64,8 @@ SELECT FROM hrsa_salary_sob t - WHERE id = #{id} AND delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.id = #{id} AND t.delete_type = 0 @@ -65,69 +73,70 @@ SELECT FROM hrsa_salary_sob t - WHERE delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 - AND id = #{id} + AND t.id = #{id} - AND income_category = #{incomeCategory} + AND t.income_category = #{incomeCategory} - AND salary_cycle_type = #{salaryCycleType} + AND t.salary_cycle_type = #{salaryCycleType} - AND salary_cycle_from_day = #{salaryCycleFromDay} + AND t.salary_cycle_from_day = #{salaryCycleFromDay} - AND tax_cycle_type = #{taxCycleType} + AND t.tax_cycle_type = #{taxCycleType} - AND attend_cycle_type = #{attendCycleType} + AND t.attend_cycle_type = #{attendCycleType} - AND attend_cycle_from_day = #{attendCycleFromDay} + AND t.attend_cycle_from_day = #{attendCycleFromDay} - AND social_security_cycle_type = #{socialSecurityCycleType} + AND t.social_security_cycle_type = #{socialSecurityCycleType} - AND disable = #{disable} + AND t.disable = #{disable} - AND description = #{description} + AND t.description = #{description} - AND creator = #{creator} + AND t.creator = #{creator} - AND create_time = #{createTime} + AND t.create_time = #{createTime} - AND update_time = #{updateTime} + AND t.update_time = #{updateTime} - AND delete_type = #{deleteType} + AND t.delete_type = #{deleteType} - AND tenant_key = #{tenantKey} + AND t.tenant_key = #{tenantKey} - AND id IN + AND t.id IN #{id} - AND tax_agent_id = #{taxAgentId} + AND t.tax_agent_id = #{taxAgentId} - AND tax_agent_id IN + AND t.tax_agent_id IN #{taxAgentId} - ORDER BY create_time DESC + ORDER BY t.create_time DESC @@ -454,60 +463,79 @@ - SELECT FROM hrsa_salary_sob t - WHERE - delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 - AND name like CONCAT('%',#{param.name},'%') + AND t.name like CONCAT('%',#{param.name},'%') - AND name like '%'||#{param.name}||'%' + AND t.name like '%'||#{param.name}||'%' - AND name like '%'+#{param.name}+'%' + AND t.name like '%'+#{param.name}+'%' - AND name like CONCAT('%',#{name},'%') + AND t.name like CONCAT('%',#{name},'%') - AND name like '%'||#{name}||'%' + AND t.name like '%'||#{name}||'%' - AND name like '%'+#{name}+'%' + AND t.name like '%'+#{name}+'%' - SELECT FROM hrsa_salary_sob t - WHERE - delete_type = 0 - and name = #{name} + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 + and t.name = #{name} + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java new file mode 100644 index 000000000..da9b6b444 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java @@ -0,0 +1,76 @@ +package com.engine.salary.mapper.salarysob; + +import com.engine.salary.entity.salarysob.po.SobTaxLinkPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface SobTaxLinkMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(SobTaxLinkPO sobTaxLink); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + SobTaxLinkPO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param sobTaxLink 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(SobTaxLinkPO sobTaxLink); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param sobTaxLink 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(SobTaxLinkPO sobTaxLink); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param sobTaxLink 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(SobTaxLinkPO sobTaxLink); + + /** + * 鍒犻櫎璁板綍 + * + * @param sobTaxLink 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(SobTaxLinkPO sobTaxLink); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteBySobId(Long id); + + int count(); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml new file mode 100644 index 000000000..8fe16ab03 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.sob_id + , t.tax_agent_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_sob_tax_link + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + sob_id, + + + tax_agent_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{sobId}, + + + #{taxAgentId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_sob_tax_link + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + sob_id=#{sobId}, + tax_agent_id=#{taxAgentId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_sob_tax_link + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + sob_id=#{sobId}, + + + tax_agent_id=#{taxAgentId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_sob_tax_link + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_sob_tax_link + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_sob_tax_link + SET delete_type = 1 + WHERE delete_type = 0 + AND sob_id=#{sobId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/remote/mode/cmd/GetModeList.java b/src/com/engine/salary/remote/mode/cmd/GetModeList.java new file mode 100644 index 000000000..bbb70bf6f --- /dev/null +++ b/src/com/engine/salary/remote/mode/cmd/GetModeList.java @@ -0,0 +1,139 @@ +package com.engine.salary.remote.mode.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.cube.biz.AppHelper; +import com.engine.cube.biz.DetachHelper; +import com.weaver.formmodel.util.StringHelper; +import weaver.conn.RecordSet; +import weaver.formmode.FormModeConfig; +import weaver.formmode.service.ModelInfoService; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.SubCompanyComInfo; +import weaver.hrm.moduledetach.ManageDetachComInfo; +import weaver.workflow.workflow.WorkflowBillComInfo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GetModeList extends AbstractCommonCommand> { + private FormModeConfig formModeConfig = new FormModeConfig(); + public GetModeList(Map params, User user){ + this.params = params; + this.user = user; + } + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + Map result = new HashMap(); + ManageDetachComInfo ManageDetachComInfo = new ManageDetachComInfo(); + boolean isUseFmManageDetach=ManageDetachComInfo.isUseFmManageDetach(); + int appid = Util.getIntValue(Util.null2String(params.get("appid")),1) ; + String aLLorCurrentKey = Util.null2String(params.get("aLLorCurrentKey")); + int appidForAppname =Util.getIntValue(Util.null2String(this.params.get("appidForAppname")),1); + ModelInfoService modelInfoService = new ModelInfoService(); + modelInfoService.setUser(user); + List> list; + int currentSubCompanyId = Util.getIntValue(Util.null2String(params.get("currentSubCompanyId")), -1); + if(user.getUID()==1&&isUseFmManageDetach&¤tSubCompanyId<1){ + isUseFmManageDetach = false; + } + if(isUseFmManageDetach) { + Map detach=DetachHelper.getUserDetachInfo(user, currentSubCompanyId, "FORMMODEAPP:ALL"); + if(currentSubCompanyId<1){ + currentSubCompanyId=Util.getIntValue(Util.null2String(detach.get("defaultSubCompanyId"))); + } + list = modelInfoService.getModelInfoByAppIdDetach(appid, currentSubCompanyId); + } else { + list = modelInfoService.getModelInfoByAppId(appid); + } + WorkflowBillComInfo workflowBillComInfo = new WorkflowBillComInfo(); + ArrayList> modeList = new ArrayList>(); + + String vsql = "SELECT m.formid,m.virtualformtype,m.vformtype FROM ModeFormExtend m WHERE m.isvirtualform=1"; + RecordSet rs = new RecordSet(); + rs.execute(vsql); + Map map = new HashMap(); + while(rs.next()){ + String formid = rs.getString("formid"); + String virtualformtype = rs.getString("virtualformtype"); + String vformtype = rs.getString("vformtype"); + map.put(formid, virtualformtype+"_"+vformtype); + } + FormModeConfig formModeConfig = new FormModeConfig(); + String VirtualFormPermissions = formModeConfig.getVirtualFormPermissions(); + String modeids = formModeConfig.getModeid(); + for(Map mode : list) { + Map newMode = new HashMap(); + String key = Util.null2String(mode.get("id")); + String formid = Util.null2String(mode.get("formid")); + String isvirtualform = Util.null2String(mode.get("isvirtualform")); + String virtualrightopen = Util.null2String(mode.get("virtualrightopen")); + if(StringHelper.isEmpty(isvirtualform)){ + isvirtualform = "0"; + } + String tableName = Util.null2String(workflowBillComInfo.getTablename(formid)); + String virtualformtype = ""; + String vformtype = ""; + if("1".equals(isvirtualform)){ + continue; + } + newMode.put("key",key ); + newMode.put("domid",key ); + newMode.put("name", Util.null2String(mode.get("modename"))); + newMode.put("subname", tableName); + newMode.put("isvirtualform", isvirtualform); + newMode.put("virtualformtype", virtualformtype); + newMode.put("vformtype", vformtype); + modeList.add(newMode); + } + result.put("appid",appid+""); + String appsubcompanyid = ""; + String appsubcompanyidname = ""; + if(appid>0){ + String sql = "SELECT subcompanyid FROM modetreefield WHERE id="+appid; + rs.execute(sql); + if(rs.next()){ + int subcompanyid = rs.getInt("subcompanyid"); + if(subcompanyid>0){ + appsubcompanyid = subcompanyid+""; + SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); + appsubcompanyidname = subCompanyComInfo.getSubcompanyname(appsubcompanyid); + } + } + } + String appName = AppHelper.getAppName(appidForAppname+""); + boolean issysadmin = user.getUID() == 1; + result.put("appName",appName); + result.put("issysadmin",issysadmin); + result.put("aLLorCurrentKey",aLLorCurrentKey); + result.put("appsubcompanyid",appsubcompanyid); + result.put("appsubcompanyidname",appsubcompanyidname); + result.put("modeList",modeList); + result.put("canDeleteModeInfo",formModeConfig.isCanDeleteModeInfo()); + return result; + } + + + public boolean isHadRight(String modeid){ + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as rightcount from moderightinfo where modeid=? and ((righttype=0 and (sharetype<80 or sharetype>100)) or (righttype in (1,2,3) and (sharetype<80 or sharetype>100)))",modeid); + int rightcount=0; + if(rs.next()){ + rightcount = Util.getIntValue(rs.getString("rightcount"),0); + } + if(rightcount>0){ + return true; + }else{ + return false; + } + } +} diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 1b45b4881..0c22876dd 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -10,8 +10,11 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; 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; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; @@ -24,6 +27,8 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeQueryParam; import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQueryParam; import com.engine.salary.report.service.SalaryStatisticsEmployeeService; 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.util.SalaryAssert; import com.engine.salary.util.SalaryDateUtil; @@ -89,6 +94,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SettingService getSettingService(User user) { return ServiceUtil.getService(SettingServiceImpl.class, user); } @@ -99,7 +108,9 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); // 1.鍒嗘潈澶勭悊, 棣栧厛鑾峰彇涓◣鎵g即涔夊姟浜哄弬鏁 - Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam taxAgentQueryParam = new TaxAgentQueryParam(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentViews = getTaxAgentService(user).listAuth(taxAgentQueryParam); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(taxAgentIds)) { return page; @@ -114,32 +125,16 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 鏌ヨ钖祫鏍哥畻浜哄憳 SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); + salaryAcctEmployeeList = getAuthService(user).auth(salaryAcctEmployeeList, AuthFilterTypeEnum.QUERY_DATA,SalaryAcctEmployeePO.class,"report"); if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return page; } -// if (queryParam.getEmployeeType() != null) { -// salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(s -> queryParam.getEmployeeType().getValue().equals(s.getEmployeeType())).collect(Collectors.toList()); -// } -// // 澶栭儴浜哄憳id -// Set extEmployeeIds = Sets.newHashSet(); // 鍐呴儴浜哄憳id Set innerEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toCollection(LinkedHashSet::new)); // 3.鍏抽敭瀛楁悳绱㈠弬鏁 if (StringUtils.isNotEmpty(queryParam.getKeyword())) { -// if (CollectionUtils.isNotEmpty(extEmployeeIds)) { -// // 鏌ヨ澶栭儴浜哄憳 -// List extEmployeeList = new LambdaQueryChainWrapper<>(extEmployeeMapper) -// .eq(ExtEmployeePO::getTenantKey, tenantKey) -// .eq(ExtEmployeePO::getDeleteType, 0) -// .list(); -// Set finalExtEmployeeIds = extEmployeeIds; -// extEmployeeIds = extEmployeeList.stream() -// .filter(e -> finalExtEmployeeIds.contains(e.getId()) && (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getCardNum()) && e.getCardNum().contains(queryParam.getKeyword())))) -// .map(ExtEmployeePO::getId) -// .collect(Collectors.toSet()); -// } if (CollectionUtils.isNotEmpty(innerEmployeeIds)) { List salaryEmployees = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); Set finalInnerEmployeeIds = innerEmployeeIds; @@ -147,37 +142,15 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .filter(e -> finalInnerEmployeeIds.contains(e.getEmployeeId()) && (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) .map(DataCollectionEmployee::getEmployeeId) .collect(Collectors.toSet()); -// Map idNoMap = idNoMapByEmployeeIds(finalInnerEmployeeIds); -// for (Long k : idNoMap.keySet()) { -// if (idNoMap.get(k) != null && idNoMap.get(k).contains(queryParam.getKeyword())) { -// innerEmployeeIds.addAll(idNoMap.keySet()); -// } -// } } } -// List extEmployeeIdList = extEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); - // 鎺掑簭锛屽唴閮ㄥ憳宸ヤ紭鍏 - list = innerEmployeeIds.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() - .id(e) -// .employeeType(EmployeeTypeEnum.ORGANIZATION.getValue()) - .build()).collect(Collectors.toList()); -// list.addAll(extEmployeeIdList.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() -// .id(e) -// .employeeType(EmployeeTypeEnum.EXT_EMPLOYEE.getValue()) -// .build()).collect(Collectors.toList())); + list = innerEmployeeIds.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder().id(e).build()).collect(Collectors.toList()); // 绗竴椤垫暟鎹樉绀哄鐞 page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); List salaryStatisticsEmployeeListDTOs = page.getList(); List employeeIds = salaryStatisticsEmployeeListDTOs.stream().map(SalaryStatisticsEmployeeListDTO::getId).collect(Collectors.toList()); - // 鏌ヨ澶栭儴浜哄憳 -// List extEmployeeList = CollectionUtils.isEmpty(extEmployeeIdList) ? Lists.newArrayList() : new LambdaQueryChainWrapper<>(extEmployeeMapper) -// .eq(ExtEmployeePO::getTenantKey, tenantKey) -// .eq(ExtEmployeePO::getDeleteType, 0) -// .in(ExtEmployeePO::getId, extEmployeeIdList) -// .list(); -// Map extEmployeeMap = extEmployeeList.stream().collect(Collectors.toMap(ExtEmployeePO::getId, v -> v)); List simpleEmployeeList = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); Map innerEmployeeMap = simpleEmployeeList.stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, v -> v)); salaryStatisticsEmployeeListDTOs.forEach(e -> { @@ -295,7 +268,9 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public PageInfo listSalaryAcctEmp(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { // 1.鍒嗘潈澶勭悊, 棣栧厛鑾峰彇涓◣鎵g即涔夊姟浜哄弬鏁 - Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentViews = getTaxAgentService(user).listAuth(param); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { taxAgentIds = taxAgentIds.stream().filter(queryParam.getTaxAgentIds()::contains).collect(Collectors.toList()); @@ -320,6 +295,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 鏌ヨ钖祫鏍哥畻浜哄憳 SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); + salaryAcctEmployeeList = getAuthService(user).auth(salaryAcctEmployeeList, AuthFilterTypeEnum.QUERY_DATA,SalaryAcctEmployeePO.class,"report"); + if (CollectionUtils.isNotEmpty(queryParam.getSubCompanyIds()) || CollectionUtils.isNotEmpty(queryParam.getDepartmentIds()) || StringUtils.isNotBlank(queryParam.getKeyword())) { // 鏍规嵁鍒嗛儴銆侀儴闂ㄧ瓫閫 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 2b62276cd..c2d62d0a6 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -413,11 +413,6 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary @Override public PageInfo> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, List salaryStatisticsItemList) { Map checkMap = SalaryStatisticsReportBO.checkLoad(salaryStatisticsItemList); - // 濡傛灉涓涓兘娌℃湁锛岀洿鎺ヨ繑鍥 -// if (!checkMap.get("isNow")) { -// return new PageInfo>(); -// } - // 鑾峰彇鏈湡鎶ヨ〃鍒嗘潈鍚庣殑鏍哥畻浜哄憳 List list = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(param); diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 9d990ea50..c385a5b21 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -331,28 +331,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } - if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { - //鎶ヨ〃涓紦瀛樼殑鏉′欢 - salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); - if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { - Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); - if (param.getDimensionId().equals(empDimensionId)) { - // 浜哄憳缁村害闇瑕佸垎椤 - Map finalResultMap = new HashMap<>(); - PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); - PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); - finalPageInfo.setTotal(pageInfo.getList().size()); - finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); - finalResultMap.put("pageInfo", finalPageInfo); - finalResultMap.put("columns", result.get("columns")); - finalResultMap.put("countResult", result.get("countResult")); - finalResultMap.put("reportId", id); - return finalResultMap; - } - - return result; - } - } +// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { +// //鎶ヨ〃涓紦瀛樼殑鏉′欢 +// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); +// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { +// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); +// if (param.getDimensionId().equals(empDimensionId)) { +// // 浜哄憳缁村害闇瑕佸垎椤 +// Map finalResultMap = new HashMap<>(); +// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); +// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); +// finalPageInfo.setTotal(pageInfo.getList().size()); +// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); +// finalResultMap.put("pageInfo", finalPageInfo); +// finalResultMap.put("columns", result.get("columns")); +// finalResultMap.put("countResult", result.get("countResult")); +// finalResultMap.put("reportId", id); +// return finalResultMap; +// } +// +// return result; +// } +// } // 鍒楄〃data diff --git a/src/com/engine/salary/service/AddUpDeductionService.java b/src/com/engine/salary/service/AddUpDeductionService.java index b41c5700c..786cfe4f3 100644 --- a/src/com/engine/salary/service/AddUpDeductionService.java +++ b/src/com/engine/salary/service/AddUpDeductionService.java @@ -86,10 +86,9 @@ public interface AddUpDeductionService { * 瀵煎嚭璇︽儏 * * @param beLongEmployeeId - * @param isChief * @param queryParam */ - XSSFWorkbook exportDetail(Long beLongEmployeeId, boolean isChief, AddUpDeductionQueryParam queryParam); + XSSFWorkbook exportDetail(Long beLongEmployeeId, AddUpDeductionQueryParam queryParam); /** * 鑾峰彇绱涓撻」闄勫姞鎵i櫎鏁版嵁 @@ -98,7 +97,7 @@ public interface AddUpDeductionService { * @param employeeIds * @return */ - List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId); + List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds); List getAccountedEmployeeDataByTaxYearMonth(String yearMonth); @@ -187,4 +186,7 @@ public interface AddUpDeductionService { */ XSSFWorkbook exportOnlineFeedbackFail(Long requestId); + String autoAddAll(Date yearMonth, boolean isAdmin, List taxAgentIds); + + List listAuth(AddUpDeductionQueryParam param); } diff --git a/src/com/engine/salary/service/OtherDeductionService.java b/src/com/engine/salary/service/OtherDeductionService.java index c8e72bb1e..1d3deab9b 100644 --- a/src/com/engine/salary/service/OtherDeductionService.java +++ b/src/com/engine/salary/service/OtherDeductionService.java @@ -95,7 +95,7 @@ public interface OtherDeductionService { * @param employeeIds * @return */ - List getOtherDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId); + List getOtherDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds); /** * 缂栬緫鏁版嵁 @@ -156,4 +156,6 @@ public interface OtherDeductionService { void deleteDerateDeduction(OtherDeductionDetailDeleteParam param); void deletePersonalPension(OtherDeductionDetailDeleteParam param); + + List listAuth(OtherDeductionQueryParam queryParam); } diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java new file mode 100644 index 000000000..e84690d73 --- /dev/null +++ b/src/com/engine/salary/service/PushService.java @@ -0,0 +1,76 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; +import com.engine.salary.entity.push.param.*; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.util.page.PageInfo; + +import java.util.List; + +public interface PushService { + + /** + * 鎺ㄩ佷换鍔″垪琛 + * + * @param param + * @return + */ + PageInfo settingList(PushSettingQueryParam param); + + + /** + * 淇濆瓨鎺ㄩ侀厤缃 + * + * @param param + */ + PushSettingPO save(PushSettingSaveParam param); + + /** + * 鍒犻櫎鎺ㄩ侀厤缃 + * + * @param id + */ + void delete(Long id); + + /** + * 鎺ㄩ佹槑缁嗗垪琛 + * + * @param param + * @return + */ + PageInfo itemList(PushSettingItemQueryParam param); + + /** + * 淇濆瓨鏄庣粏閰嶇疆 + * + * @param param + */ + PushSettingItemPO saveItem(PushSettingItemSaveParam param); + + /** + * 鍒犻櫎鏄庣粏閰嶇疆 + * + * @param id + */ + void deleteItem(Long id); + + /** + * 鎺ㄩ佷竴鏉℃牳绠楄褰曚笅鐨勬墍鏈夋暟鎹 + * + * @param salaryAcctRecordId + * @return + */ + void pushOneRecord(Long salaryAcctRecordId); + + void createPushRecord(Long salaryAcctRecordId); + + void removeRecords(List records); + + PageInfo recordList(RecordListQueryParam param); + + PageInfo recordDetailList(RecordDetailListQueryParam param); +} diff --git a/src/com/engine/salary/service/SIArchivesService.java b/src/com/engine/salary/service/SIArchivesService.java index dd13f472a..879ab655a 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -121,8 +121,6 @@ public interface SIArchivesService { void handleStayDelData(long currentEmployeeId); - PageInfo getAdjustHistoryList(SIArchiveBaseHistoryListParam param); - PageInfo historyListByEmployeeIdAndOperator(SIArchiveBaseHistoryListParam param); List> buildTableData(List insuranceArchivesEmployeePOS); diff --git a/src/com/engine/salary/service/SalaryAcctEmployeeService.java b/src/com/engine/salary/service/SalaryAcctEmployeeService.java index f004aec8b..3dfc3ddc2 100644 --- a/src/com/engine/salary/service/SalaryAcctEmployeeService.java +++ b/src/com/engine/salary/service/SalaryAcctEmployeeService.java @@ -258,6 +258,7 @@ public interface SalaryAcctEmployeeService { * @return */ List listByTaxAgentAndSalaryMonth(List taxAgentIds, Set salaryMonths); + List listBySobAndSalaryMonth(List salarySobIds, Set salaryMonths); /** * 閿佸畾浜哄憳 diff --git a/src/com/engine/salary/service/SalaryArchiveService.java b/src/com/engine/salary/service/SalaryArchiveService.java index 5ab2dac29..e86655fd6 100644 --- a/src/com/engine/salary/service/SalaryArchiveService.java +++ b/src/com/engine/salary/service/SalaryArchiveService.java @@ -114,7 +114,7 @@ public interface SalaryArchiveService { * @param employeeIds 涓虹┖鍒欒繑鍥炴墍鏈変汉鐨 * @return */ - List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId); + List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds); /** * 鏍规嵁鏃ユ湡鑼冨洿涓庝汉鍛榠d鑾峰彇钖祫妗f-涓◣鎵g即涔夊姟浜烘暟鎹 @@ -123,7 +123,7 @@ public interface SalaryArchiveService { * @param employeeIds 涓虹┖鍒欒繑鍥炴墍鏈変汉鐨 * @return */ - List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId); + List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds); /** * 棰勮 diff --git a/src/com/engine/salary/service/SalaryBillService.java b/src/com/engine/salary/service/SalaryBillService.java index 4878df87b..755d98542 100644 --- a/src/com/engine/salary/service/SalaryBillService.java +++ b/src/com/engine/salary/service/SalaryBillService.java @@ -58,11 +58,10 @@ public interface SalaryBillService { /** * 鏋勫缓鍙戞斁鍙傛暟 * @param salarySend - * @param taxAgentName * @param salaryTemplate * @return */ - SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate); + SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, SalaryTemplatePO salaryTemplate); /** * 宸ヨ祫鍗曟挙鍥 diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index ba8284e74..571073eee 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -160,18 +160,21 @@ public interface SalaryEmployeeService { /** * 鏍规嵁铏氭嫙閮ㄩ棬鑾峰彇浜哄憳淇℃伅 + * * @param virtualDepartmentIds */ List getVirtualEmpByVirtualDepIds(List virtualDepartmentIds); /** * 鏍规嵁铏氭嫙鍒嗛儴鑾峰彇浜哄憳淇℃伅 + * * @param virtualSubCompanyIds */ List getVirtualEmpByVirtualSubCompanyIds(List virtualSubCompanyIds); /** * 鏍规嵁閮ㄩ棬鎴栬呭垎閮ㄦ煡璇汉鍛 + * * @param subCompanyIds * @param departmentIds * @return @@ -193,6 +196,12 @@ public interface SalaryEmployeeService { List listByKeyword(String keyword); + List listBySubCompany(List subCompanyIds); + + List listByDepartment(List departmentIds); + + List listByJob(List jobIds); + /** * 鏍规嵁鑱岀Оid鑾峰彇鑱岀О淇℃伅 * @param jobCallId diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index 4f570039b..15747572a 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -52,6 +52,7 @@ public interface SalarySendService { * @return */ PageInfo listPage(SalarySendQueryParam queryParam); + List list(SalarySendQueryParam queryParam); /** * 宸ヨ祫鍗曞彂鏀 diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 1056846fc..7d0596097 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -2,10 +2,7 @@ package com.engine.salary.service; import com.engine.salary.entity.salarysob.config.SalarySobConfig; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; -import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; -import com.engine.salary.entity.salarysob.param.SalarySobDisableParam; -import com.engine.salary.entity.salarysob.param.SalarySobDuplicateParam; -import com.engine.salary.entity.salarysob.param.SalarySobListQueryParam; +import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.sys.entity.vo.UploadConfigResponse; @@ -67,7 +64,7 @@ public interface SalarySobService { List listAll(); - List listAllByAuth(); + List listAuth(SalarySobQueryParam param); /** * 鑾峰彇鎷ユ湁绠$悊鏉冮檺鐨勮处濂 @@ -143,23 +140,19 @@ public interface SalarySobService { */ SalarySobCycleDTO getSalarySobCycle(Long id, YearMonth salaryMonth); - /** - * 鎸夋潈闄愯繃婊ゆ帀鏃犳潈闄愮殑钖祫璐﹀ - * - * 鎬荤鐞嗗憳鎷ユ湁鏉冮檺 - * @param salarySobPOS - * @return - */ - List filterByAuthority(List salarySobPOS); - /** * 鏍规嵁鎵g即涔夊姟浜烘煡璇 * @param taxAgentIds * @return */ - List listByTaxAgentIds(Collection taxAgentIds); + List listByTaxAgentIds(List taxAgentIds); List getConfig(Long taxAgentId); List parseConfig(Long taxAgentId, List salarySobConfigs); + + List list(SalarySobQueryParam param); + + void handleHistory(); + } diff --git a/src/com/engine/salary/service/TaxAgentAdminService.java b/src/com/engine/salary/service/TaxAgentAdminService.java index 274ba8c07..60ac4d451 100644 --- a/src/com/engine/salary/service/TaxAgentAdminService.java +++ b/src/com/engine/salary/service/TaxAgentAdminService.java @@ -53,4 +53,11 @@ public interface TaxAgentAdminService { * @return */ List listByEmployeeId(Long currentEmployeeId); + + /** + * 鑾峰彇绠$悊鐨勬墸缂翠箟鍔′汉id + * @param currentEmployeeId + * @return + */ + List getAdminTaxAgentIds(Long currentEmployeeId); } diff --git a/src/com/engine/salary/service/TaxAgentManageRangeService.java b/src/com/engine/salary/service/TaxAgentManageRangeService.java index 0de8a4562..78b7a4f5c 100644 --- a/src/com/engine/salary/service/TaxAgentManageRangeService.java +++ b/src/com/engine/salary/service/TaxAgentManageRangeService.java @@ -38,6 +38,8 @@ public interface TaxAgentManageRangeService { */ PageInfo listPageByParamAndIncludeType(TaxAgentRangeQueryParam queryParam, Integer includeType); + List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType); + /** * 鏍规嵁鍒嗙鐞嗗憳id闆嗗悎鏌ヨ鑼冨洿鍒楄〃 * diff --git a/src/com/engine/salary/service/TaxAgentService.java b/src/com/engine/salary/service/TaxAgentService.java index 6f92c4936..d0c5c14de 100644 --- a/src/com/engine/salary/service/TaxAgentService.java +++ b/src/com/engine/salary/service/TaxAgentService.java @@ -52,6 +52,13 @@ public interface TaxAgentService { */ Boolean isChief(Long currentEmployeeId); + /** + * 鑾峰彇绠$悊鐨勬墸缂翠箟鍔′汉id + * @param currentEmployeeId + * @return + */ + List getAdminTaxAgentIds(Long currentEmployeeId); + /** * 榛樿鏉冮檺鏄惁寮鍚 * @@ -100,6 +107,8 @@ public interface TaxAgentService { */ List listAll(); + List listAuth(TaxAgentQueryParam taxAgentQueryParam); + /** * 鏍规嵁id鑾峰彇鍗曚釜涓◣鎵g即涔夊姟浜 * @@ -121,7 +130,7 @@ public interface TaxAgentService { * @param currentEmployeeId 褰撳墠鐧诲綍浜篿d * @return */ - Collection listAllTaxAgents(Long currentEmployeeId); + List listAllTaxAgents(Long currentEmployeeId); /** * 鑾峰彇浣滀负绠$悊鍛樼殑鎵鏈変釜绋庢墸缂翠箟鍔′汉鍒楄〃 diff --git a/src/com/engine/salary/service/VariableArchiveService.java b/src/com/engine/salary/service/VariableArchiveService.java index 280a4064d..735c03a96 100644 --- a/src/com/engine/salary/service/VariableArchiveService.java +++ b/src/com/engine/salary/service/VariableArchiveService.java @@ -69,7 +69,7 @@ public interface VariableArchiveService { void deleteSelectVariableArchive(Collection deleteIds); - List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId); + List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, List taxAgentIds); void updateData(VariableArchiveSaveParam updateParam); } diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java new file mode 100644 index 000000000..ca0848e60 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -0,0 +1,50 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; +import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; +import com.engine.salary.entity.auth.po.AuthDataPO; + +import java.util.List; + +/** + * 鏁版嵁 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthDataService { + + /** + * 鍒楄〃 + * @param roleId + * @return + */ + List list(Long roleId); + + /** + * 淇濆瓨鏁版嵁 + * @param params + * @return + */ + void save(List params); + + /** + * 鍒犻櫎 + * @param ids + */ + void delete(List ids); + + /** + * 鍚屾 + * @param param + */ + void sync(AuthSyncParam param); + + void deleteByRoleId(Long roleId); + + List listRoleData( AuthDataQueryParam param); +} diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java new file mode 100644 index 000000000..582887859 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -0,0 +1,163 @@ +package com.engine.salary.service.auth; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; +import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; +import com.engine.salary.entity.auth.po.AuthDataPO; +import com.engine.salary.entity.auth.po.AuthRoleDataPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.enums.auth.DataLinkEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthDataMapper; +import com.engine.salary.mapper.auth.AuthRoleDataMapper; +import com.engine.salary.mapper.auth.AuthRoleEmpMapper; +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 java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class AuthDataServiceImpl extends Service implements AuthDataService { + + + private AuthDataMapper getAuthDataMapper() { + return MapperProxyFactory.getProxy(AuthDataMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + private AuthRoleEmpMapper getAuthRoleEmpMapper() { + return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class); + } + + private AuthRoleDataMapper getAuthRoleDataMapper() { + return MapperProxyFactory.getProxy(AuthRoleDataMapper.class); + } + + + @Override + public List list(Long roleId) { + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("瑙掕壊涓嶅瓨鍦紒"); + } + return getAuthDataMapper().listSome(AuthDataPO.builder().roleId(roleId).build()); + } + + @Override + public void save(List params) { + params.forEach(param -> { + Date now = new Date(); + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("瑙掕壊涓嶅瓨鍦紒"); + } + + if (param.getId() == null) { + AuthDataPO dataPO = AuthDataPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex() == null ? 0 : param.getSortedIndex()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthDataMapper().insertIgnoreNull(dataPO); + } else { + getAuthDataMapper().getById(param.getId()); + AuthDataPO dataPO = AuthDataPO.builder() + .id(param.getId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex() == null ? 0 : param.getSortedIndex()) + .creator((long) user.getUID()) + .updateTime(now) + .deleteType(0) + .build(); + getAuthDataMapper().updateIgnoreNull(dataPO); + } + }); + } + + @Override + public void delete(List ids) { + if (CollectionUtil.isNotEmpty(ids)) { + getAuthDataMapper().deleteByIds(ids); + } + } + + @Override + public void sync(AuthSyncParam param) { + Long roleId = param.getRoleId(); + Date now = new Date(); + List list = list(roleId); + + Set ids = new HashSet<>(); + for (int i = 0; i < list.size(); i++) { + AuthDataPO dataPO = list.get(i); + DataTargetTypeEnum dataTargetTypeEnum = DataTargetTypeEnum.parseByValue(dataPO.getTargetType()); + DataLinkEnum dataLinkEnum = DataLinkEnum.parseByValue(dataPO.getLink()); + Set empResult = dataTargetTypeEnum.getEmpIds(dataPO.getTarget()); + if (i == 0) { + ids = empResult; + } else { + ids = dataLinkEnum.calculation(ids, empResult); + } + } + + getAuthRoleDataMapper().deleteByRoleId(roleId); + + List collect = ids.stream().map(empId -> + AuthRoleDataPO.builder() + .id(IdGenerator.generate()) + .roleId(roleId) + .employeeId(empId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + + List> partition = Lists.partition(collect, 100); + partition.forEach(pos -> getAuthRoleDataMapper().batchInsert(pos)); + } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthDataMapper().deleteByRoleId(roleId); + getAuthRoleDataMapper().deleteByRoleId(roleId); + } + + @Override + public List listRoleData( AuthDataQueryParam param) { + List authRoleDataDTOS = getAuthRoleDataMapper().listRoleData(param.getRoleId()); + if (StrUtil.isNotEmpty(param.getUsername())){ + authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + } + return authRoleDataDTOS; + } +} diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java new file mode 100644 index 000000000..f977e131a --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -0,0 +1,49 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; +import com.engine.salary.entity.auth.po.AuthMemberPO; + +import java.util.List; + +/** + * 鎴愬憳 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthMemberService { + /** + * 鎴愬憳鍒楄〃 + * @param roleId + * @return + */ + List list(Long roleId); + + /** + * 娣诲姞鎴愬憳 + * @param params + * @return + */ + void save(List params); + + /** + * 鍒犻櫎鎴愬憳 + * @param ids + */ + void delete(List ids); + + /** + * 鍚屾鎴愬憳 + * @param param + */ + void sync(AuthSyncParam param); + + void deleteByRoleId(Long roleId); + + List listRoleEmp(AuthMemberQueryParam param); +} diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java new file mode 100644 index 000000000..b3a5232b6 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -0,0 +1,204 @@ +package com.engine.salary.service.auth; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; +import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.po.AuthRoleEmpPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthMemberMapper; +import com.engine.salary.mapper.auth.AuthRoleEmpMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryEntityUtil; +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 java.util.*; +import java.util.stream.Collectors; + +public class AuthMemberServiceImpl extends Service implements AuthMemberService { + + + private AuthMemberMapper getAuthMemberMapper() { + return MapperProxyFactory.getProxy(AuthMemberMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + private AuthRoleEmpMapper getAuthRoleEmpMapper() { + return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class); + } + + + @Override + public List list(Long roleId) { + return getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); + } + + @Override + public void save(List params) { + params.forEach(param -> { + AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId()); + if (rolePO == null) { + throw new SalaryRunTimeException("瑙掕壊涓嶅瓨鍦紒"); + } + + Date now = new Date(); + if (param.getId() == null) { + AuthMemberPO po = AuthMemberPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .target(param.getTarget()) + .targetType(param.getTargetType().getValue()) + .targetName(param.getTargetName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthMemberMapper().insertIgnoreNull(po); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "鎴愬憳锛" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鏂板鎴愬憳")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鏂板鎴愬憳")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + } else { + AuthMemberPO oldPO = getAuthMemberMapper().getById(param.getId()); + AuthMemberPO newPo = AuthMemberPO.builder() + .id(param.getId()) + .target(param.getTarget()) + .targetType(param.getTargetType().getValue()) + .targetName(param.getTargetName()) + .creator((long) user.getUID()) + .updateTime(now) + .deleteType(0) + .build(); + getAuthMemberMapper().updateIgnoreNull(newPo); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "鎴愬憳锛" + newPo.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "缂栬緫鎴愬憳")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "缂栬緫鎴愬憳")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(newPo); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + } + + }); + } + + @Override + public void delete(List ids) { + + ids.forEach(id -> { + AuthMemberPO po = getAuthMemberMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("鎴愬憳涓嶅瓨鍦紒"); + } + + getAuthMemberMapper().deleteByIds(Collections.singleton(id)); + + AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "鎴愬憳锛" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎鎴愬憳")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎鎴愬憳")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + }); + + + } + + @Override + public void sync(AuthSyncParam param) { + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("瑙掕壊涓嶅瓨鍦紒"); + } + + //1銆佽幏鍙栨垚鍛 + List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); + Map> targetTypeMap = SalaryEntityUtil.group2Map(members, AuthMemberPO::getTargetType, AuthMemberPO::getTarget); + + //2銆佽幏鍙栦汉鍛 + Set empIds = new HashSet<>(); + for (Integer targetType : targetTypeMap.keySet()) { + Set targetIds = targetTypeMap.get(targetType); + List ids = MemberTargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); + empIds.addAll(ids); + } + + //3銆佹洿鏂版垚鍛樺叧绯 + getAuthRoleEmpMapper().deleteByRoleId(roleId); + Date now = new Date(); + List roleEmpPOS = empIds.stream() + .map(empId -> AuthRoleEmpPO.builder() + .id(IdGenerator.generate()) + .employeeId(empId) + .roleId(roleId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(roleEmpPOS)) { + List> partition = Lists.partition(roleEmpPOS, 100); + partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); + } + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍚屾鎴愬憳")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鍚屾鎴愬憳")); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthMemberMapper().deleteByRoleId(roleId); + getAuthRoleEmpMapper().deleteByRoleId(roleId); + } + + @Override + public List listRoleEmp(AuthMemberQueryParam param) { + List empDTOS = getAuthRoleEmpMapper().getByRoleId(param.getRoleId()); + if(StrUtil.isNotEmpty(param.getUsername())){ + empDTOS = empDTOS.stream().filter(item -> item.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + } + + return empDTOS; + } +} diff --git a/src/com/engine/salary/service/auth/AuthOptService.java b/src/com/engine/salary/service/auth/AuthOptService.java new file mode 100644 index 000000000..9a607c7f9 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthOptService.java @@ -0,0 +1,36 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; + +import java.util.List; + +/** + * 鏉冮檺椤 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthOptService { + /** + * 鏉冮檺鏍 + * @param roleId + * @return + */ + AuthOptDTO optTree(Long roleId); + + /** + * 淇濆瓨鏉冮檺椤 + * @param param + * @return + */ + void save(AuthOptSaveParam param); + + void deleteByRoleId(Long roleId); + + List listOpts(Long roleId); + +} diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java new file mode 100644 index 000000000..f482a0096 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -0,0 +1,98 @@ +package com.engine.salary.service.auth; + +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthOptMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.security.AnyTypePermission; +import weaver.general.GCONST; + +import java.io.File; +import java.util.*; + +public class AuthOptServiceImpl extends Service implements AuthOptService { + + + + private AuthOptMapper getAuthOptMapper() { + return MapperProxyFactory.getProxy(AuthOptMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + + @Override + public AuthOptDTO optTree(Long roleId) { + List authOptPOS = getAuthOptMapper().listSome(AuthOptPO.builder().roleId(roleId).build()); + Map> pageOpts = SalaryEntityUtil.group2Map(authOptPOS, AuthOptPO::getPage, AuthOptPO::getOpt); + XStream xStream = new XStream(); + String resource = GCONST.getRootPath() + "WEB-INF" + File.separatorChar + "salaryoptconfig.xml"; +// File file = new File("H:\\code\\salary\\resource\\WEB-INF\\salaryoptconfig.xml"); + File file = new File(resource); + + xStream.addPermission(AnyTypePermission.ANY); + xStream.processAnnotations(AuthOptDTO.class); + AuthOptDTO dto = (AuthOptDTO)xStream.fromXML(file); + + dto.getModules().forEach(module -> { + module.getPages().forEach(page -> { + Set opts = pageOpts.getOrDefault(page.getKey(),new HashSet<>()); + page.getOpts().forEach(opt -> { + if(opts.contains(opt.getKey())){ + opt.setAble(true); + } + }); + }); + }); + + return dto; + } + + @Override + public void save(AuthOptSaveParam param) { + Date now = new Date(); + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("瑙掕壊涓嶅瓨鍦紒"); + } + + getAuthOptMapper().deleteByRoleId(roleId); + + param.getOpts().forEach(opt -> { + AuthOptPO po = AuthOptPO.builder() + .id(IdGenerator.generate()) + .roleId(roleId) + .page(opt.getPage()) + .opt(opt.getOpt()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthOptMapper().insertIgnoreNull(po); + }); + } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthOptMapper().deleteByRoleId(roleId); + } + + @Override + public List listOpts(Long roleId) { + return getAuthOptMapper().listSome(AuthOptPO.builder().roleId(roleId).build()); + } +} diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java new file mode 100644 index 000000000..32527ec54 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -0,0 +1,40 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.util.page.PageInfo; + +import java.util.List; + +/** + * 瑙掕壊 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthRoleService { + + PageInfo roleList(AuthRoleListQueryParam param); + + AuthRoleDTO getRole(Long id); + + /** + * 娣诲姞瑙掕壊 + * @param param + * @return + */ + Long saveRole(AuthRoleSaveParam param); + + /** + * 鍒犻櫎瑙掕壊 + * @param ids + */ + void deleteRole(List ids); + + List listAll(); + +} diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java new file mode 100644 index 000000000..b9d205f89 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -0,0 +1,249 @@ +package com.engine.salary.service.auth; + +import cn.hutool.core.collection.CollectionUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; +import com.engine.salary.entity.auth.po.AuthResourcePO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.ResourceTargetTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthResourceMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +public class AuthRoleServiceImpl extends Service implements AuthRoleService { + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + private AuthResourceMapper getAuthResourceMapper() { + return MapperProxyFactory.getProxy(AuthResourceMapper.class); + } + + private AuthMemberService getAuthMemberService(User user) { + return ServiceUtil.getService(AuthMemberServiceImpl.class, user); + } + + private AuthOptService getAuthOptService(User user) { + return ServiceUtil.getService(AuthOptServiceImpl.class, user); + } + + private AuthDataService getAuthDataService(User user) { + return ServiceUtil.getService(AuthDataServiceImpl.class, user); + } + + + @Override + public PageInfo roleList(AuthRoleListQueryParam param) { + + List authRolePOS = getAuthRoleMapper().list(param); + int total = authRolePOS.size(); + + List collect = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authRolePOS) + .stream().map(po -> { + Long roleId = po.getId(); + AuthMemberQueryParam roleQueryParam = AuthMemberQueryParam.builder().roleId(roleId).build(); + List authRoleEmpDTOS = getAuthMemberService(user).listRoleEmp(roleQueryParam); + List authOptPOS = getAuthOptService(user).listOpts(roleId); + AuthDataQueryParam dataQueryParam = AuthDataQueryParam.builder().roleId(roleId).build(); + List authRoleDataDTOS = getAuthDataService(user).listRoleData(dataQueryParam); + List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); + + return AuthRoleDTO.builder().id(roleId) + .name(po.getName()) + .description(po.getDescription()) + .members(authRoleEmpDTOS.size()) + .opts(authOptPOS.size()) + .datas(authRoleDataDTOS.size()) + .resources(authResources.size()) + .build(); + }).collect(Collectors.toList()); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), collect, AuthRoleDTO.class); + pageInfo.setTotal(total); + return pageInfo; + } + + @Override + public AuthRoleDTO getRole(Long id) { + AuthRolePO po = getAuthRoleMapper().getById(id); + if (po == null){ + throw new SalaryRunTimeException("涓氬姟绾夸笉瀛樺湪"); + } + Long roleId = po.getId(); + List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); + + List taxAgentIds = new ArrayList<>(); + List sobIds = new ArrayList<>(); + authResources.forEach(resource -> { + if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { + taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { + sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } + }); + + return AuthRoleDTO.builder() + .id(roleId) + .name(po.getName()) + .description(po.getDescription()) + .taxAgentIds(taxAgentIds) + .sobIds(sobIds) + .build(); + } + + @Override + public Long saveRole(AuthRoleSaveParam param) { + Date now = new Date(); + Long id = param.getId(); + String name = param.getName(); + String description = param.getDescription(); + + AuthRolePO po; + if (id == null) { + po = AuthRolePO.builder() + .id(IdGenerator.generate()) + .name(name) + .description(description) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthRoleMapper().insertIgnoreNull(po); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("涓氬姟绾匡細" + name); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鏂板涓氬姟绾")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鏂板涓氬姟绾")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + + } else { + po = getAuthRoleMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("涓氬姟绾夸笉瀛樺湪锛"); + } + AuthRolePO newPo = AuthRolePO.builder() + .id(id) + .name(name) + .description(description) + .updateTime(now) + .build(); + getAuthRoleMapper().updateIgnoreNull(newPo); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("涓氬姟绾匡細" + name); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鏇存柊涓氬姟绾")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鏇存柊涓氬姟绾")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(newPo); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + } + + getAuthResourceMapper().deleteByRoleId(po.getId()); + + List taxAgents = param.getTaxAgentIds(); + List sobs = param.getSobIds(); + if (CollectionUtil.isNotEmpty(taxAgents)) { + taxAgents.forEach(tax -> { + AuthResourcePO resourcePO = AuthResourcePO.builder() + .id(IdGenerator.generate()) + .roleId(po.getId()) + .target(tax.getId()) + .targetType(ResourceTargetTypeEnum.TAX_AGENT.getValue()) + .targetName(tax.getName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthResourceMapper().insertIgnoreNull(resourcePO); + }); + } + if (CollectionUtil.isNotEmpty(sobs)) { + sobs.forEach(sob -> { + AuthResourcePO resourcePO = AuthResourcePO.builder() + .id(IdGenerator.generate()) + .roleId(po.getId()) + .target(sob.getId()) + .targetType(ResourceTargetTypeEnum.SOB.getValue()) + .targetName(sob.getName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthResourceMapper().insertIgnoreNull(resourcePO); + }); + } + + return po.getId(); + } + + @Override + public void deleteRole(List ids) { + ids.forEach(roleId -> { + AuthRolePO po = getAuthRoleMapper().getById(roleId); + if (po == null) { + throw new SalaryRunTimeException("涓氬姟绾夸笉瀛樺湪锛"); + } + + getAuthResourceMapper().deleteByRoleId(roleId); + getAuthMemberService(user).deleteByRoleId(roleId); + getAuthOptService(user).deleteByRoleId(roleId); + getAuthDataService(user).deleteByRoleId(roleId); + getAuthRoleMapper().deleteByIds(Collections.singleton(roleId)); + + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("涓氬姟绾匡細" + po.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎涓氬姟绾")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎涓氬姟绾")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); + }); + } + + @Override + public List listAll() { + return getAuthRoleMapper().listAll(); + } +} diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java new file mode 100644 index 000000000..95d7e367c --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -0,0 +1,69 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthTreeDTO; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; +import com.engine.salary.entity.auth.vo.Permission; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; + +import java.util.List; + +/** + * 鏉冮檺鎺у埗鍗曞厓 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthService { + + /** + * 鍗曚竴瀵硅薄鏉冮檺璇嗗埆 + * + * @param t 瀵硅薄瀹炰綋 + * @param filterType 鏁版嵁杩囨护鏂瑰紡锛岄粯璁ら噰鐢ㄢ滄暟鎹&鍔熻兘鏉冮檺鈥濇柟寮忚繃婊 + * @param clazz 鍙嶅皠绫伙紝闇鍔燖Auth娉ㄨВ瀹氫箟鏉冮檺椤 + * @param 瀵硅薄娉涘瀷 + * @return 鏄惁鏈夋潈闄 + */ + boolean auth(T t, AuthFilterTypeEnum filterType, Class clazz); + + /** + * 瀵硅薄鏉冮檺璇嗗埆 + * + * @param list 瀵硅薄闆嗗悎 + * @param filterType <>鏁版嵁杩囨护鏂瑰紡锛岄粯璁ら噰鐢ㄢ滄暟鎹&鍔熻兘鏉冮檺鈥濇柟寮忚繃婊 + * @param clazz 鍙嶅皠绫伙紝闇鍔燖Auth娉ㄨВ瀹氫箟鏉冮檺椤 + * @param 瀵硅薄娉涘瀷 + * @return 鏈夋潈闄愮殑瀵硅薄闆嗗悎 + */ + List auth(List list, AuthFilterTypeEnum filterType, Class clazz); + + /** + * 瀵硅薄鏉冮檺璇嗗埆 + * + * @param list 瀵硅薄闆嗗悎 + * @param filterType 鏁版嵁杩囨护鏂瑰紡锛岄粯璁ら噰鐢ㄢ滄暟鎹&鍔熻兘鏉冮檺鈥濇柟寮忚繃婊 + * @param clazz 鍙嶅皠绫伙紝闇鍔燖Auth娉ㄨВ瀹氫箟鏉冮檺椤 + * @param page 椤甸潰鏍囪瘑锛岀敤浜庤幏鍙栨潈闄愰」 + * @param 瀵硅薄娉涘瀷 + * @return 鏈夋潈闄愮殑瀵硅薄闆嗗悎 + */ + List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page); + + /** + * 鍗曢〉鏉冮檺璇嗗埆 + * + * @param page 椤甸潰鏍囪瘑锛岀敤浜庤幏鍙栨潈闄愰」 + * @return 鏉冮檺鏍 + */ + Permission permission(String page); + + /** + * 鏉冮檺鏍 + * + * @param param 鏌ヨ鍙傛暟 + * @return 鏉冮檺鏍 + */ + AuthTreeDTO tree(AuthTreeQueryParam param); +} diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java new file mode 100644 index 000000000..e988f796d --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -0,0 +1,338 @@ +package com.engine.salary.service.auth; + +import cn.hutool.core.collection.CollectionUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.annotation.Auth; +import com.engine.salary.entity.auth.dto.*; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; +import com.engine.salary.entity.auth.vo.Permission; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthMapper; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.SalarySobServiceImpl; +import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; +import weaver.hrm.User; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.*; + +public class AuthServiceImpl extends Service implements AuthService { + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } + + private AuthMapper getAuthMapper() { + return MapperProxyFactory.getProxy(AuthMapper.class); + } + + @Override + public boolean auth(T t, AuthFilterTypeEnum filterType, Class clazz) { + List list = new ArrayList(); + list.add(t); + list = auth(list, filterType, clazz, null); + return list.size() > 0; + } + + @Override + public List auth(List list, AuthFilterTypeEnum filterType, Class clazz) { + return auth(list, filterType, clazz, null); + } + + @Override + public List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page) { + Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); + boolean isAuth = clazz.isAnnotationPresent(Auth.class); + + if (!isOpenDevolution || !isAuth) { + return list; + } + + Auth auth = clazz.getAnnotation(Auth.class); + String taxAgentIdField = auth.taxAgentIdField(); + String taxAgentIdFieldGetter = "get" + taxAgentIdField.substring(0, 1).toUpperCase() + taxAgentIdField.substring(1); + String employeeIdField = auth.employeeIdField(); + String employeeIdFieldGetter = "get" + employeeIdField.substring(0, 1).toUpperCase() + employeeIdField.substring(1); + String sobIdField = auth.sobIdField(); + String sobIdFieldGetter = "get" + sobIdField.substring(0, 1).toUpperCase() + sobIdField.substring(1); + String optsField = auth.optsField(); + String optsFieldGetter = "get" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); + String optsFieldSetter = "set" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); + + //缁欐荤鐞嗗憳璧嬪兼渶澶ф潈闄 + Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); + if (isChief || filterType == AuthFilterTypeEnum.NO_AUTH) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + list.forEach(t -> { + try { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); + } + }); + } + return list; + } + + List resultList = new ArrayList<>(); + + page = page == null ? auth.page() : page; + AuthCheckTypeEnum checkType = auth.checkType(); + + //缁欏悇绠$悊鍛樿祴鍊煎搴旂殑鎵g即涔夊姟浜烘潈闄 + List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); + if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { + Iterator iterator = list.iterator(); + if (checkType == AuthCheckTypeEnum.TAX || checkType == AuthCheckTypeEnum.TAX_EMP) { + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + + if (adminTaxAgentIds.contains(taxAgentId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } + resultList.add(t); + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); + } + } + } else if (checkType == AuthCheckTypeEnum.SOB) { + List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(adminTaxAgentIds); + Set adminSobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); + Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); + if (adminSobIds.contains(sobId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } + resultList.add(t); + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); + } + } + } + } + + list.removeAll(resultList); + + //缁欏悇瑙掕壊璧嬫潈 + try { + Iterator iterator = list.iterator(); + if (checkType == AuthCheckTypeEnum.TAX_EMP) { + + List authDTOS = getAuthMapper().getTaxEmpOptAuth((long) user.getUID(), page); + Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, TaxEmpOptAuth::getTaxAgentId, TaxEmpOptAuth::getEmps); + + while (iterator.hasNext()) { + T t = iterator.next(); + //娣峰悎楠岃瘉 + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); + Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); + + if (authMap.containsKey(taxAgentId)) { + List orDefault = authMap.getOrDefault(taxAgentId, new ArrayList<>()); + Map> optsMap = SalaryEntityUtil.convert2Map(orDefault, EmpOpt::getEmployeeId, EmpOpt::getOpts); + if (optsMap.containsKey(employeeId)) { + Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()); + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } + } + } + } + } + } else if (checkType == AuthCheckTypeEnum.SOB) { + List sobOptAuth = getAuthMapper().getSobOptAuth((long) user.getUID(), page); + Map> sobOpts = SalaryEntityUtil.convert2Map(sobOptAuth, SobOptAuth::getSobId, SobOptAuth::getOpts); + while (iterator.hasNext()) { + T t = iterator.next(); + Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); + Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); + + if (sobOpts.containsKey(sobId)) { + Set optSets = sobOpts.getOrDefault(sobId, new HashSet<>()); + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } + } + } + } + } else if (checkType == AuthCheckTypeEnum.TAX) { + List authDTOS = getAuthMapper().getTaxOptAuth((long) user.getUID(), page); + Map> taxOpts = SalaryEntityUtil.convert2Map(authDTOS, TaxOptAuth::getTaxAgentId, TaxOptAuth::getOpts); + + while (iterator.hasNext()) { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + + if (taxOpts.containsKey(taxAgentId)) { + Set optSets = taxOpts.getOrDefault(taxAgentId, new HashSet<>()); + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } + } + } + } + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); + } + return resultList; + } + + @Override + public Permission permission(String page) { + long uid = user.getUID(); + List opts = new ArrayList<>(); + + //鑾峰彇鏄惁寮鍚垎鏉冩ā寮 + Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); + //缁欐荤鐞嗗憳璧嬪兼渶澶ф潈闄 + Boolean isChief = getTaxAgentService(user).isChief(uid); + //缁欏悇绠$悊鍛樿祴鍊煎搴旂殑鎵g即涔夊姟浜烘潈闄 + Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable(uid); + + boolean able = false; + + //涓嶉渶瑕侀壌鏉冪殑椤甸潰 + List noAuthPage = Lists.newArrayList("myBill"); + + //鍙厑璁告荤鐞嗚繘鍘荤殑鐣岄潰 + List chiefPage = Lists.newArrayList("auth"); + + if (noAuthPage.contains(page)) { + opts.add("admin"); + able = true; + } else if (chiefPage.contains(page)) { + opts.add("admin"); + able = isChief; + } else { + //濡傛灉鏄鐞嗗憳锛岃祴鍊肩鐞嗘潈闄愯繑鍥 + if (isChief || isAdminEnable) { + opts.add("admin"); + able = true; + } else { + opts = getAuthMapper().getOptsByPage(uid, page); + able = CollectionUtil.isNotEmpty(opts); + } + } + + return Permission.builder() + .isOpenDevolution(isOpenDevolution) + .isChief(isChief) + .isAdminEnable(isAdminEnable) + .able(able) + .opts(opts) + .build(); + } + + @Override + public AuthTreeDTO tree(AuthTreeQueryParam param) { + AuthTreeDTO authTreeDTO = getAuthMapper().authTree(param); + return authTreeDTO; + } + +} diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index ca998e4b7..784ccc032 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -38,6 +38,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO; import com.engine.salary.entity.taxagent.response.SzyhResponseHead; @@ -46,6 +47,7 @@ import com.engine.salary.entity.taxapiflow.po.TaxDeclarationApiFlowRecordPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.EnumAddUpDeductionRequestStatus; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; @@ -63,6 +65,8 @@ import com.engine.salary.mapper.employeedeclare.EmployeeDeclareMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.enums.EmployeeTypeEnum; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -178,6 +182,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction return ServiceUtil.getService(ExtEmpServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + + private SalarySobService getSalarySobService(User user) { return ServiceUtil.getService(SalarySobServiceImpl.class, user); } @@ -285,12 +294,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction Date now = new Date(); //寰呮彃鍏ユ暟鎹簱瀵硅薄 - AddUpDeduction addUpDeduction = AddUpDeduction.builder() - .tenantKey(DEFAULT_TENANT_KEY) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .declareMonth(declareMonth).build(); + AddUpDeduction addUpDeduction = AddUpDeduction.builder().tenantKey(DEFAULT_TENANT_KEY).createTime(now).updateTime(now).creator((long) user.getUID()).declareMonth(declareMonth).build(); //寮傚父鐐规暟閲 int errorSum = 0; @@ -322,9 +326,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction errorSum += 1; } else if (employeeSameIds.size() > 1) { //瀛樺湪绂昏亴鍜屽湪鑱岀姸鎬佸彇鍦ㄨ亴鐘舵 - employeeSameIds = employeeSameIds.stream() - .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) - .collect(Collectors.toList()); + employeeSameIds = employeeSameIds.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).collect(Collectors.toList()); if (employeeSameIds.size() != 1) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowIndex + "鍛樺伐淇℃伅涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ涓憳宸"); @@ -509,16 +511,17 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); String declareMonthStr = addUpDeduction.getDeclareMonth(); - Long currentEmployeeId = (long) user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - AddUpDeduction byId = addUpDeductionBiz.getById(addUpDeduction.getId()); - if (byId == null) { + AddUpDeduction po = addUpDeductionBiz.getById(addUpDeduction.getId()); + if (po == null) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } - Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); - if (!canEdit) { + // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + Long taxAgentId = po.getTaxAgentId(); + if (!taxAgentIds.contains(taxAgentId)) { //娌℃湁缂栬緫鏉冮檺 throw new SalaryRunTimeException("璇ヤ釜绋庢墸缂翠箟鍔′汉鏃犳潈闄愮紪杈戞鏁版嵁锛"); } @@ -546,9 +549,8 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + addUpDeduction.getId()); loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); loggerContext.setOperateTypeName(name); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil - .getI18nLabel(0, "缂栬緫")); - loggerContext.setOldValues(byId); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil.getI18nLabel(0, "缂栬緫")); + loggerContext.setOldValues(po); loggerContext.setNewValues(newValue); loggerContext.setUser(user); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); @@ -556,19 +558,15 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction @Override public void createAddUpDeduction(AddUpDeductionRecordParam addUpDeductionRecordParam) { - long currentEmployeeId = user.getUID(); - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); - //绋庢鎵灞炴湡 String declareMonthStr = addUpDeductionRecordParam.getDeclareMonth(); if (declareMonthStr.equals("")) { throw new SalaryRunTimeException("绋庢鎵灞炴湡涓嶈兘涓虹┖锛"); } // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - //涓◣鎵g即涔夊姟浜 - String taxAgentId = Util.null2String(addUpDeductionRecordParam.getTaxAgentId()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); // 鑾峰彇绉熸埛涓嬫墍鏈夌殑浜哄憳 List employees = getSalaryEmployeeService(user).listEmployee(); // 宸茬粡鏍哥畻杩囩殑涓嶅彲鎿嶄綔 @@ -581,15 +579,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //鏌ヨ瀵逛簬浜哄憳淇℃伅瀵煎叆绛涢夌殑鍏ㄥ眬閰嶇疆 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); List insertData = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); Date now = new Date(); //寰呮彃鍏ユ暟鎹簱瀵硅薄 - AddUpDeduction addUpDeduction = AddUpDeduction.builder() - .tenantKey(DEFAULT_TENANT_KEY) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .declareMonth(declareMonth).build(); + AddUpDeduction addUpDeduction = AddUpDeduction.builder().tenantKey(DEFAULT_TENANT_KEY).createTime(now).updateTime(now).creator((long) user.getUID()).declareMonth(declareMonth).build(); boolean employeeSameId = employees.stream().anyMatch(e -> Objects.equals(e.getEmployeeId(), addUpDeductionRecordParam.getEmployeeId())); if (!employeeSameId) { throw new SalaryRunTimeException("鍛樺伐淇℃伅涓嶅瓨鍦"); @@ -601,27 +593,15 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //涓◣鎵g即涔夊姟浜轰笉鑳戒负绌 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉鑳戒负绌"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - addUpDeduction.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + addUpDeduction.setTaxAgentId(optionalTemp.get().getId()); } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴"); } } - //fixme 鍒嗘潈鍒ゆ柇 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(addUpDeduction.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "璇ユ潯鏁版嵁涓嶅湪涓◣鎵g即涔夊姟浜轰汉鍛樿寖鍥村唴锛屼笉鍙鍏"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } - // 鍒ゆ柇鏄惁鏈夋牳绠楄繃 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(addUpDeduction.getEmployeeId()) && f.getTaxAgentId().equals(addUpDeduction.getTaxAgentId())).findFirst(); @@ -713,8 +693,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + e.getId()); loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil - .getI18nLabel(0, "鍒犻櫎")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎")); loggerContext.setOldValues(e); loggerContext.setUser(user); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); @@ -728,8 +707,10 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); ArrayList declareMonthDate = new ArrayList<>(); try { @@ -741,10 +722,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction if (deleteParam.getTaxAgentId() != null && (!deleteParam.getTaxAgentId().equals(""))) { // 璁剧疆浜嗕釜绋庢墸缂翠箟鍔′汉 Long taxAgentId = SalaryEntityUtil.string2Long(deleteParam.getTaxAgentId()); - boolean canDelete = taxAgentIds.stream().anyMatch(t -> Objects.equals(t, taxAgentId)); - if (!canDelete) { - throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴!"); - } ArrayList tai = new ArrayList<>(); tai.add(taxAgentId); queryParam = AddUpDeductionQueryParam.builder().declareMonthDate(declareMonthDate).taxAgentIds(tai).build(); @@ -752,7 +729,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam = AddUpDeductionQueryParam.builder().declareMonthDate(declareMonthDate).taxAgentIds(taxAgentIds).build(); } // 鑾峰彇鎵鏈夋兂瑕佸垹闄ょ殑鏁版嵁 - List list = addUpDeductionBiz.list(queryParam); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List list = listAuth(queryParam); + // 鑾峰彇宸茬粡鏍哥畻鐨勬暟鎹 List salaryAcctEmployees = getAccountedEmployeeDataByTaxYearMonth(declareMonthStr); for (AddUpDeductionDTO item : list) { @@ -768,25 +747,19 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // 璁板綍鏃ュ織 Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); + List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getId())).map(TaxAgentPO::getName).collect(Collectors.toList()); String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetName(name); loggerContext.setOperateType(OperateTypeEnum.CLEAR.getValue()); loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "涓閿竻绌")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil - .getI18nLabel(0, "涓閿竻绌猴細") + name); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "绱涓撻」闄勫姞鎵i櫎") + "-" + SalaryI18nUtil.getI18nLabel(0, "涓閿竻绌猴細") + name); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); } @Override public AddUpDeductionRecordDTO getAddUpDeduction(AddUpDeductionQueryParam param) { - long uid = user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(param.getId()); AddUpDeductionQueryParam build = AddUpDeductionQueryParam.builder().ids(ids).build(); @@ -794,15 +767,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction if (addUpDeductionRecordDTOS == null || addUpDeductionRecordDTOS.size() == 0) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } - String taxAgentName = addUpDeductionRecordDTOS.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("鎮ㄦ棤鏉冩煡鐪嬭鏁版嵁!"); - } return addUpDeductionRecordDTOS.get(0); } @Override - public String autoAddAll(Date yearMonth, Boolean isAdmin, List taxAgentIds) { + public String autoAddAll(Date yearMonth, boolean isAdmin, List taxAgentIds) { String cacheKey = "addUpDeduction_autoAddAll_processing"; Object objVal = Util_DataCache.getObjVal(cacheKey); if (objVal != null) { @@ -811,13 +780,13 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction try { Util_DataCache.setObjVal(cacheKey, true); //濡傛灉鏄畾鏃朵换鍔$洿鎺ユ煡璇㈡墍鏈夛紝isAdmin浼爐rue - boolean isChief = Boolean.TRUE.equals(isAdmin) - || getTaxAgentService(user).isChief((long) user.getUID()); Collection taxAgents; - if (isChief) { + if (isAdmin) { taxAgents = getTaxAgentService(user).listAll(); } else { - taxAgents = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + taxAgents = getTaxAgentService(user).listAuth(param); } // 杩囨护涓◣鎵g即涔夊姟浜洪夋嫨妗 if (CollectionUtils.isNotEmpty(taxAgentIds)) { @@ -825,14 +794,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } LocalDateTime yearMonthTime = DateUtil.toLocalDateTime(yearMonth); //璁剧疆鏃堕棿鍒颁笅涓骞1鏈1鍙 - Instant instant = yearMonthTime.plusYears(1L) - .withMonth(1).withDayOfMonth(1) - .atZone(ZoneOffset.systemDefault()).toInstant(); + Instant instant = yearMonthTime.plusYears(1L).withMonth(1).withDayOfMonth(1).atZone(ZoneOffset.systemDefault()).toInstant(); Date nextYearStart = Date.from(instant); - int countByDeclareAfter = getAddUpDeductionMapper() - .countByDeclareAfter(yearMonth, nextYearStart, - taxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList()) - ); + int countByDeclareAfter = getAddUpDeductionMapper().countByDeclareAfter(yearMonth, nextYearStart, taxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList())); if (countByDeclareAfter > 0) { throw new SalaryRunTimeException("鏃犳硶绱锛岃妫鏌ュ綋鍓嶇疮璁″勾搴﹀唴璇ユ湀鍚庢槸鍚︽湁绱涓撻」闄勫姞鎵i櫎璁板綍锛"); } @@ -841,8 +805,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction List errorMessages = new ArrayList<>(); List accountedEmployeeData = getAccountedEmployeeDataByTaxYearMonth(DateUtil.format(yearMonth, "yyyy-MM")); for (TaxAgentPO taxAgent : taxAgents) { - List employeePOs = getSpecialAddDeductionService(user) - .getSpecialAddDeductionPOByEmployee(null, taxAgent.getId()); + List employeePOs = getSpecialAddDeductionService(user).getSpecialAddDeductionPOByEmployee(null, taxAgent.getId()); //鑾峰彇涓婃湀鍛樺伐鏁版嵁锛岀敤浜庣疮鍔 @@ -862,17 +825,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction employeePOs.forEach(employeePO -> { Long employeeId = employeePO.getEmployeeId(); // 濡傛灉璇ュ憳宸ュ綋鍓嶆湀浠藉凡缁忔牳绠楋紝涓嶅仛绱 - SalaryAcctEmployeePO anyAccountedEmployee = accountedEmployeeData.stream() - .filter(e -> e.getEmployeeId().equals(employeeId)) - .filter(e -> e.getTaxAgentId().equals(taxAgent.getId())) - .findAny().orElse(null); + SalaryAcctEmployeePO anyAccountedEmployee = accountedEmployeeData.stream().filter(e -> e.getEmployeeId().equals(employeeId)).filter(e -> e.getTaxAgentId().equals(taxAgent.getId())).findAny().orElse(null); if (anyAccountedEmployee != null) { errorMessages.add(employeeId); return; } - AddUpDeduction addUpDeduction = Optional.ofNullable(lastEmpInfo.get(employeeId)) - .flatMap(list -> list.stream().findFirst()) - .orElseGet(AddUpDeduction::new); + AddUpDeduction addUpDeduction = Optional.ofNullable(lastEmpInfo.get(employeeId)).flatMap(list -> list.stream().findFirst()).orElseGet(AddUpDeduction::new); this.combine(addUpDeduction, employeePO); addUpDeduction.setEmployeeId(employeeId); @@ -882,9 +840,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction addUpDeduction.setTenantKey(DEFAULT_TENANT_KEY); //纭褰撴湡鏄惁鏈夊凡缁忕疮璁$殑璁板綍 - AddUpDeduction oldInfo = Optional.ofNullable(currentEmpInfo.get(employeeId)) - .flatMap(c -> c.stream().findFirst()) - .orElse(null); + AddUpDeduction oldInfo = Optional.ofNullable(currentEmpInfo.get(employeeId)).flatMap(c -> c.stream().findFirst()).orElse(null); Date now = new Date(); if (oldInfo == null) { addUpDeduction.setCreateTime(now); @@ -898,10 +854,8 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } }); } - Lists.partition(insertList, 100) - .forEach(l -> getAddUpDeductionMapper().insertData((List) l)); - Lists.partition(updateList, 100) - .forEach(l -> getAddUpDeductionMapper().updateDataAndDeclareMonth((List) l)); + Lists.partition(insertList, 100).forEach(l -> getAddUpDeductionMapper().insertData((List) l)); + Lists.partition(updateList, 100).forEach(l -> getAddUpDeductionMapper().updateDataAndDeclareMonth((List) l)); // 璁板綍鏃ュ織 // 鏍规嵁鏈堜唤銆佷汉鍛榠d鏌ュ嚭淇濆瓨鐨勬暟鎹 @@ -928,11 +882,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } if (!errorMessages.isEmpty()) { - String userNames = getSalaryEmployeeService(user) - .getEmployeeByIdsAll(errorMessages) - .stream() - .map(DataCollectionEmployee::getUsername) - .collect(Collectors.joining(",")); + String userNames = getSalaryEmployeeService(user).getEmployeeByIdsAll(errorMessages).stream().map(DataCollectionEmployee::getUsername).collect(Collectors.joining(",")); return "涓閿疮璁″畬鎴愶紒鍛樺伐" + userNames + "鍦ㄨ骞存湀宸叉牳绠楀綊妗o紝璺宠繃鏈绱"; } return "涓閿疮璁″畬鎴愶紒"; @@ -941,6 +891,13 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } } + @Override + public List listAuth(AddUpDeductionQueryParam param) { + List list = getAddUpDeductionMapper().list(param); + list = getAuthService(user).auth(list, param.getFilterType(), AddUpDeductionDTO.class); + return list; + } + /** * 瀵规瘡涓墸闄ら」鍋氬姞娉 * @@ -972,18 +929,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } private String plus(String var0, String var1) { - return SalaryEntityUtil.string2BigDecimalDefault0(var0) - .add(SalaryEntityUtil.string2BigDecimalDefault0(var1)) - .toString(); + return SalaryEntityUtil.string2BigDecimalDefault0(var0).add(SalaryEntityUtil.string2BigDecimalDefault0(var1)).toString(); } private Map> getEmpInfoByYearMonth(TaxAgentPO taxAgent, List employeePOs, YearMonth lastMonth) { - List addUpDeductionList = getAddUpDeductionList(lastMonth, - employeePOs.stream().map(SpecialAddDeductionPO::getEmployeeId).collect(Collectors.toList()), - taxAgent.getId()); - return addUpDeductionList.stream() - .filter(addUpDeduction -> taxAgent.getId().equals(addUpDeduction.getTaxAgentId())) - .collect(Collectors.groupingBy(AddUpDeduction::getEmployeeId)); + List addUpDeductionList = getAddUpDeductionList(lastMonth, employeePOs.stream().map(SpecialAddDeductionPO::getEmployeeId).collect(Collectors.toList()), Collections.singletonList(taxAgent.getId())); + return addUpDeductionList.stream().filter(addUpDeduction -> taxAgent.getId().equals(addUpDeduction.getTaxAgentId())).collect(Collectors.groupingBy(AddUpDeduction::getEmployeeId)); } @@ -1042,28 +993,16 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam.setDeclareMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpDeductionDTO.class); - } - // 杩囨护涔夊姟浜虹瓫閫夋 - if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { - taxAgentIdsAsAdmin = taxAgentIdsAsAdmin.stream().filter(id -> queryParam.getTaxAgentIds().contains(id)).collect(Collectors.toList()); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } - //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - List list = getAddUpDeductionMapper().list(queryParam); + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); + List list = listAuth(queryParam); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionDTO.class); encryptUtil.decryptList(pageInfo.getList(), AddUpDeductionDTO.class); + SalaryI18nUtil.i18nList(pageInfo.getList()); return pageInfo; } @@ -1081,8 +1020,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } List list = getAddUpDeductionMapper().recordList(queryParam); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), - list, AddUpDeductionRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionRecordDTO.class); encryptUtil.decryptList(page.getList(), AddUpDeductionRecordDTO.class); return page; } @@ -1094,7 +1032,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction * @return */ @Override - public XSSFWorkbook exportDetail(Long beLongEmployeeId, boolean isChief, AddUpDeductionQueryParam queryParam) { + public XSSFWorkbook exportDetail(Long beLongEmployeeId, AddUpDeductionQueryParam queryParam) { queryParam.setEmployeeId(beLongEmployeeId); AddUpDeductionBiz biz = new AddUpDeductionBiz(); @@ -1124,7 +1062,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //鑾峰彇鎿嶄綔鎸夐挳璧勬簮 - List> rowList = getExcelRowDetailList(isChief, queryParam); + List> rowList = getExcelRowDetailList(queryParam); //鑾峰彇excel @@ -1138,8 +1076,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction * @param param * @return */ - private List> getExcelRowDetailList(boolean isChief, AddUpDeductionQueryParam param) { - long employeeId = user.getUID(); + private List> getExcelRowDetailList(AddUpDeductionQueryParam param) { //excel鏍囬 List title = Arrays.asList("濮撳悕", "鐢虫姤鏈堜唤", "涓◣鎵g即涔夊姟浜", "閮ㄩ棬", "宸ュ彿", "绱瀛愬コ鏁欒偛", "绱缁х画鏁欒偛", "绱浣忔埧璐锋鍒╂伅", "绱浣忔埧绉熼噾", "绱璧″吇鑰佷汉", "绱澶х梾鍖荤枟", "绱濠村辜鍎跨収鎶"); @@ -1148,40 +1085,23 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); //鏌ヨ璇︾粏淇℃伅 List list = new AddUpDeductionBiz().recordList(param); - final List> dataRowList = Optional.ofNullable(list) - .map(List::stream) - .map(operatorStream -> operatorStream.map(dto -> { - List cellList = new ArrayList<>(); - cellList.add(Util.null2String(dto.getUsername())); - cellList.add(Util.null2String(dto.getDeclareMonth() == null ? "" : formatter.format(dto.getDeclareMonth()))); - cellList.add(Util.null2String(dto.getTaxAgentName())); - cellList.add(Util.null2String(dto.getDepartmentName())); - cellList.add(Util.null2String(dto.getJobNum())); - cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); - cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); - cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); - cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); + final List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { + List cellList = new ArrayList<>(); + cellList.add(Util.null2String(dto.getUsername())); + cellList.add(Util.null2String(dto.getDeclareMonth() == null ? "" : formatter.format(dto.getDeclareMonth()))); + cellList.add(Util.null2String(dto.getTaxAgentName())); + cellList.add(Util.null2String(dto.getDepartmentName())); + cellList.add(Util.null2String(dto.getJobNum())); + cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); + cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); + cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); + cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); - return cellList; - }).collect(Collectors.toList())) - .orElse(Collections.emptyList()); - - - // 寮鍚垎鏉冨苟涓斾笉鏄柂閰ā鍧楁荤鐞嗗憳 - if (getTaxAgentService(user).isOpenDevolution() && !isChief) { - List taxAgentEmployees = getTaxAgentService(user).listTaxAgentAndEmployee(employeeId); - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); -// List lastList = getLastListByModifier(employeeId); - list = list.stream().filter(f -> - // 浣滀负绠$悊鍛 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - // 浣滀负鍒嗙鐞嗗憳 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId()) - ).collect(Collectors.toList()); - } + return cellList; + }).collect(Collectors.toList())).orElse(Collections.emptyList()); List> rowList = new ArrayList<>(); @@ -1192,34 +1112,19 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction @Override - public List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId) { + public List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds) { AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); if (declareMonth == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100342, "鍙傛暟鏈夎锛氱敵鎶ユ湀浠姐佺鎴穔ey蹇呬紶")); } - return addUpDeductionBiz.listSome(AddUpDeduction.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + return addUpDeductionBiz.listSome(AddUpDeduction.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); } @Override public XSSFWorkbook downloadTemplate(boolean isChief, AddUpDeductionQueryParam queryParam) { String sheetName = SalaryI18nUtil.getI18nLabel(101603, "绱涓撻」闄勫姞鎵i櫎瀵煎叆妯℃澘"); - String[] header = { - SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), - SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜"), - SalaryI18nUtil.getI18nLabel(86185, "閮ㄩ棬"), - SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), - SalaryI18nUtil.getI18nLabel(86317, "宸ュ彿"), - SalaryI18nUtil.getI18nLabel(86318, "璇佷欢鍙风爜"), - SalaryI18nUtil.getI18nLabel(86319, "鍏ヨ亴鏃ユ湡"), - SalaryI18nUtil.getI18nLabel(86321, "绱瀛愬コ鏁欒偛"), - SalaryI18nUtil.getI18nLabel(86323, "绱缁х画鏁欒偛"), - SalaryI18nUtil.getI18nLabel(86324, "绱浣忔埧璐锋鍒╂伅"), - SalaryI18nUtil.getI18nLabel(86325, "绱浣忔埧绉熼噾"), - SalaryI18nUtil.getI18nLabel(86326, "绱璧″吇鑰佷汉"), - SalaryI18nUtil.getI18nLabel(105142, "绱澶х梾鍖荤枟"), - SalaryI18nUtil.getI18nLabel(105142, "绱濠村辜鍎跨収鎶") - }; + String[] header = {SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜"), SalaryI18nUtil.getI18nLabel(86185, "閮ㄩ棬"), SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), SalaryI18nUtil.getI18nLabel(86317, "宸ュ彿"), SalaryI18nUtil.getI18nLabel(86318, "璇佷欢鍙风爜"), SalaryI18nUtil.getI18nLabel(86319, "鍏ヨ亴鏃ユ湡"), SalaryI18nUtil.getI18nLabel(86321, "绱瀛愬コ鏁欒偛"), SalaryI18nUtil.getI18nLabel(86323, "绱缁х画鏁欒偛"), SalaryI18nUtil.getI18nLabel(86324, "绱浣忔埧璐锋鍒╂伅"), SalaryI18nUtil.getI18nLabel(86325, "绱浣忔埧绉熼噾"), SalaryI18nUtil.getI18nLabel(86326, "绱璧″吇鑰佷汉"), SalaryI18nUtil.getI18nLabel(105142, "绱澶х梾鍖荤枟"), SalaryI18nUtil.getI18nLabel(105142, "绱濠村辜鍎跨収鎶")}; List headerList = Arrays.asList(header); @@ -1227,6 +1132,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction List> rows = new ArrayList<>(); rows.add(headerList); if (queryParam.isHasData()) { + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); List> datas = getLists(queryParam); rows.addAll(datas); } @@ -1254,6 +1160,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //excel鏍囬 List title = Arrays.asList("濮撳悕", "涓◣鎵g即涔夊姟浜", "閮ㄩ棬", "鎵嬫満鍙", "宸ュ彿", "璇佷欢鍙风爜", "鍏ヨ亴鏃ユ湡", "绱瀛愬コ鏁欒偛", "绱缁х画鏁欒偛", "绱浣忔埧璐锋鍒╂伅", "绱浣忔埧绉熼噾", "绱璧″吇鑰佷汉", "绱澶х梾鍖荤枟", "绱濠村辜鍎跨収鎶"); + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List> dataRowList = getLists(queryParam); List> rowList = new ArrayList<>(); @@ -1277,46 +1184,32 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction private List> getLists(AddUpDeductionQueryParam param) { - long uid = user.getUID(); //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = new AddUpDeductionBiz().list(param); + List list = listAuth(param); + encryptUtil.decryptList(list, AddUpDeductionDTO.class); + SalaryI18nUtil.i18nList(list); - // 寮鍚垎鏉冨苟涓斾笉鏄柂閰ā鍧楁荤鐞嗗憳 - if (getTaxAgentService(user).isNeedAuth(uid)) { - List taxAgentEmployees = getTaxAgentService(user).listTaxAgentAndEmployee(uid); - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(uid).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - // 浣滀负绠$悊鍛 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - // 浣滀负鍒嗙鐞嗗憳 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId()) - ).collect(Collectors.toList()); - } - - List> dataRowList = Optional.ofNullable(list) - .map(List::stream) - .map(operatorStream -> operatorStream.map(dto -> { - List cellList = new ArrayList<>(); - cellList.add(Util.null2String(dto.getUsername())); - cellList.add(Util.null2String(dto.getTaxAgentName())); - cellList.add(Util.null2String(dto.getDepartmentName())); - cellList.add(Util.null2String(dto.getMobile())); - cellList.add(Util.null2String(dto.getJobNum())); - cellList.add(Util.null2String(dto.getIdNo())); - cellList.add(Util.null2String(dto.getHiredate())); - cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); - cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); - cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); - cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); - return cellList; - }).collect(Collectors.toList())) - .orElse(Collections.emptyList()); + List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { + List cellList = new ArrayList<>(); + cellList.add(Util.null2String(dto.getUsername())); + cellList.add(Util.null2String(dto.getTaxAgentName())); + cellList.add(Util.null2String(dto.getDepartmentName())); + cellList.add(Util.null2String(dto.getMobile())); + cellList.add(Util.null2String(dto.getJobNum())); + cellList.add(Util.null2String(dto.getIdNo())); + cellList.add(Util.null2String(dto.getHiredate())); + cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); + cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); + cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); + cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); + return cellList; + }).collect(Collectors.toList())).orElse(Collections.emptyList()); return dataRowList; } diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index c0ba99713..cd013a06b 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSON; import com.api.browser.bean.SearchConditionGroup; @@ -26,6 +27,7 @@ import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO; import com.engine.salary.entity.taxagent.response.SzyhResponseHead; @@ -35,10 +37,17 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.employeedeclare.EmployeeDeclareMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; +import com.engine.salary.service.AddUpDeductionService; +import com.engine.salary.service.AddUpSituationService; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.service.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -119,6 +128,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private EmployeeDeclareMapper getEmployeeDeclareMapper() { return MapperProxyFactory.getProxy(EmployeeDeclareMapper.class); } @@ -222,36 +235,18 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpSituationDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } List list = getAddUpSituationMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AddUpSituationDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpSituationDTO.class); encryptUtil.decryptList(page.getList(), AddUpSituationDTO.class); + SalaryI18nUtil.i18nList(list); return page; } @Override public PageInfo recordListPage(AddUpSituationQueryParam queryParam) { - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpSituationRecordDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } - List list = getAddUpSituationMapper().recordList(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), @@ -275,7 +270,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100353, "鍙傛暟鏈夎锛氱◣娆炬墍灞炴湡蹇呬紶")); } - AddUpSituationBiz biz = new AddUpSituationBiz(); List addUpSituations = biz.listSome(AddUpSituation.builder().taxAgentId(taxAgentId).taxYearMonth(taxCycle).build()); List addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId, Collectors.toList()); @@ -291,6 +285,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public XSSFWorkbook export(AddUpSituationQueryParam queryParam) { // 鑾峰彇鎿嶄綔鎸夐挳璧勬簮 + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List> rowList = getExcelRowList(queryParam, true); // 璁板綍鏃ュ織 @@ -314,7 +309,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation * @return 瀵煎嚭鏁版嵁琛岄泦鍚 */ private List> getExcelRowList(AddUpSituationQueryParam param, boolean hasData) { - long employeeId = user.getUID(); // excel鏍囬 final List title = Arrays.asList("濮撳悕", "涓◣鎵g即涔夊姟浜", "閮ㄩ棬", "鎵嬫満鍙", "宸ュ彿", "璇佷欢鍙风爜", "鍏ヨ亴鏃ユ湡", "绱鏀跺叆棰", "绱鍑忛櫎璐圭敤", "绱绀句繚涓汉鍚堣", "绱鍏Н閲戜釜浜哄悎璁", "绱浼佷笟锛堣亴涓氾級骞撮噾鍙婂叾浠栫鍒", "绱鍏朵粬鎵i櫎", "绱鍏嶇◣鏀跺叆", "绱鍑嗕簣鎵i櫎鐨勬崘璧犻", "绱鍑忓厤绋庨", @@ -328,14 +322,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = biz.list(param); - // 寮鍚垎鏉冨苟涓斾笉鏄柂閰ā鍧楁荤鐞嗗憳 - if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } + List list = listAuth(param); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) @@ -371,6 +358,14 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation return rowList; } + private List listAuth(AddUpSituationQueryParam param) { + List list = getAddUpSituationMapper().list(param); + list = getAuthService(user).auth(list, param.getFilterType(), AddUpSituationDTO.class); + encryptUtil.decryptList(list, AddUpSituationDTO.class); + SalaryI18nUtil.i18nList(list); + return list; + } + /** * 瀵煎嚭璇︽儏 @@ -470,6 +465,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public XSSFWorkbook downloadTemplate(AddUpSituationQueryParam queryParam) { + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); String sheetName = SalaryI18nUtil.getI18nLabel(101605, "寰鏈熺疮璁℃儏鍐靛鍏ユā鏉"); // 鑾峰彇鎿嶄綔鎸夐挳璧勬簮 List> rowList = getExcelRowList(queryParam, queryParam.isHasData()); @@ -536,10 +532,8 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public Map importAddUpSituation(AddUpSituationImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); Map apidatas = new HashMap(); - AddUpSituationBiz biz = new AddUpSituationBiz(); //鏌ヨ瀵逛簬浜哄憳淇℃伅瀵煎叆绛涢夌殑鍏ㄥ眬閰嶇疆 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); @@ -553,10 +547,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //绋庢鎵灞炴湡 String taxYearMonthStr = Util.null2String(importParam.getTaxYearMonth()); - Long currentEmployeeId = (long) user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 鑾峰彇绉熸埛涓嬫墍鏈夌殑浜哄憳 List employees = getSalaryEmployeeService(user).listEmployee(); // 宸茬粡鏍哥畻杩囩殑涓嶅彲鎿嶄綔 @@ -674,10 +668,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪 Map errorMessageMap = Maps.newHashMap(); @@ -687,17 +680,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } } - // fixme 鍒嗘潈鍒ゆ柇锛岃嫢鍛樺伐绂昏亴鍚庯紝涓嶅湪鎵g即涔夊姟浜鸿寖鍥村唴锛屼細鏈夊紓甯 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "璇ユ潯鏁版嵁涓嶅湪涓◣鎵g即涔夊姟浜轰汉鍛樿寖鍥村唴锛屼笉鍙鍏"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } - // 鍒ゆ柇鏄惁鏈夋牳绠楄繃 if (CollectionUtils.isNotEmpty(salaryAcctEmployees) && !Objects.equals(taxYearMonthStr.split("-")[1], "12")) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId()) && f.getTaxAgentId().equals(po.getTaxAgentId())).findFirst(); @@ -886,18 +868,19 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation */ @Override public void editAddUpSituation(AddUpSituationParam addUpSituationParam) { - Long currentEmployeeId = (long) user.getUID(); AddUpSituationBiz biz = new AddUpSituationBiz(); //绋庢鎵灞炴湡 String taxYearMonthStr = addUpSituationParam.getTaxYearMonth(); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); AddUpSituation byId = biz.getById(addUpSituationParam.getId()); if (byId == null) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); + boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getId(), taxAgentId)); if (!canEdit) { //娌℃湁缂栬緫鏉冮檺 throw new SalaryRunTimeException("璇ヤ釜绋庢墸缂翠箟鍔′汉鏃犳潈闄愮紪杈戞鏁版嵁锛"); @@ -961,17 +944,14 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation */ @Override public void createAddUpSituation(AddUpSituationParam addUpSituationParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - AddUpSituationBiz biz = new AddUpSituationBiz(); - //鏌ヨ瀵逛簬浜哄憳淇℃伅瀵煎叆绛涢夌殑鍏ㄥ眬閰嶇疆 - //SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); - //String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; Long currentEmployeeId = (long) user.getUID(); //绋庢鎵灞炴湡 String taxYearMonthStr = Util.null2String(addUpSituationParam.getTaxYearMonth()); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 鑾峰彇绉熸埛涓嬫墍鏈夌殑浜哄憳 List employees = getSalaryEmployeeService(user).listEmployee(); // 宸茬粡鏍哥畻杩囩殑涓嶅彲鎿嶄綔 @@ -985,8 +965,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //鍚堣鏁版嵁 List insertList = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); - //寰呮彃鍏ユ暟鎹簱瀵硅薄 AddUpSituation po = AddUpSituation.builder().tenantKey(DEFAULT_TENANT_KEY) .createTime(now) @@ -1008,26 +986,15 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //涓◣鎵g即涔夊姟浜轰笉鑳戒负绌 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉鑳戒负绌"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴"); } } - // fixme 鍒嗘潈鍒ゆ柇锛岃嫢鍛樺伐绂昏亴鍚庯紝涓嶅湪鎵g即涔夊姟浜鸿寖鍥村唴锛屼細鏈夊紓甯 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "璇ユ潯鏁版嵁涓嶅湪涓◣鎵g即涔夊姟浜轰汉鍛樿寖鍥村唴锛屼笉鍙鍏"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } // 鍒ゆ柇鏄惁鏈夋牳绠楄繃 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { @@ -1100,9 +1067,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public void deleteSelectAddUpSituation(AddUpSituationDeleteParam deleteParam) { - long currentEmployeeId = user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); AddUpSituationBiz biz = new AddUpSituationBiz(); String declareMonthStr = deleteParam.getTaxYearMonth(); List deleteIds = deleteParam.getIds(); @@ -1115,17 +1079,24 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation // 鍒ゆ柇鏄惁鏈夋牳绠楄繃 List deletePOList = new ArrayList<>(); List deleteList = new ArrayList<>(); + + AddUpSituationQueryParam param = AddUpSituationQueryParam.builder().ids(deleteIds).build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List addUpSituationDTOS = listAuth(param); + if (CollectionUtil.isEmpty(addUpSituationDTOS)) { + throw new SalaryRunTimeException("鏃犳潈闄愬垹闄ゆ暟鎹紒"); + } + + deleteIds = SalaryEntityUtil.properties(addUpSituationDTOS, AddUpSituationDTO::getId, Collectors.toList()); + + for (int i = 0; i < deleteIds.size(); i++) { Long id = deleteIds.get(i); AddUpSituation byId = biz.getById(id); if (byId == null) { throw new SalaryRunTimeException("鏁版嵁涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎锛"); } - // 鍒ゆ柇鏄惁鍦ㄤ釜绋庢墸缂翠箟鍔′汉鑼冨洿鍐 - Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getTaxAgentId(), byId.getTaxAgentId())).findFirst(); - if (!first.isPresent()) { - throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴"); - } + // 鍒ゆ柇鐢ㄦ埛鏄惁瀛樺湪 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(byId.getEmployeeId()) && f.getTaxAgentId().equals(byId.getTaxAgentId())).findFirst(); @@ -1156,11 +1127,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public void deleteAllAddUpSituation(AddUpSituationDeleteParam deleteParam) { String declareMonthStr = deleteParam.getTaxYearMonth(); - long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); AddUpSituationBiz biz = new AddUpSituationBiz(); Date declareMonthDate = new Date(); try { @@ -1168,24 +1135,20 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } catch (Exception e) { throw new SalaryRunTimeException("鏃ユ湡寮傚父"); } - AddUpSituation queryParam = null; + AddUpSituation queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).build(); if (deleteParam.getTaxAgentId() != null && !deleteParam.getTaxAgentId().isEmpty()) { // 璁剧疆浜嗕釜绋庢墸缂翠箟鍔′汉 Long taxAgentId = SalaryEntityUtil.string2Long(deleteParam.getTaxAgentId()); - boolean canDelete = taxAgentIds.stream().anyMatch(t -> Objects.equals(t, taxAgentId)); - if (!canDelete) { - throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴!"); - } ArrayList tai = new ArrayList<>(); tai.add(taxAgentId); - queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).taxAgentIds(tai).build(); - } else { - queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).taxAgentIds(taxAgentIds).build(); + queryParam.setTaxAgentIds(tai); } // 鑾峰彇鎵鏈夋兂瑕佸垹闄ょ殑鏁版嵁 List list = biz.listSome(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.ADMIN_DATA, AddUpSituation.class); + LocalDate salaryMonthDate = LocalDate.parse(declareMonthStr + "-01", SalaryDateUtil.DATE_FORMATTER); String format = salaryMonthDate.plusMonths(1).atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM")); // 鑾峰彇宸茬粡鏍哥畻鐨勬暟鎹 @@ -1202,10 +1165,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation biz.batchDeleteByIDS(deleteIds); // 璁板綍鏃ュ織 - Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); - String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); + String name = declareMonthStr +"-"+ deleteParam.getTaxAgentId(); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setTargetName(name); loggerContext.setOperateType(OperateTypeEnum.CLEAR.getValue()); @@ -1218,10 +1178,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public AddUpSituationRecordDTO getAddUpSituation(AddUpSituationParam addUpSituationParam) { - long uid = user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(addUpSituationParam.getId()); AddUpSituationQueryParam build = AddUpSituationQueryParam.builder().ids(ids).build(); @@ -1229,10 +1185,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation if (list == null || list.size() == 0) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } - String taxAgentName = list.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("鎮ㄦ棤鏉冩煡鐪嬭鏁版嵁!"); - } return list.get(0); } diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index ee7e00713..0ff7b6674 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -376,17 +376,17 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa errorMsg = errorMsg + "銆" + salarySobPO.getName() + "銆戣柂璧勮处濂楁病鏈変汉鍛; "; } else { // 鏍规嵁钖祫璐﹀鏌ヨ钖祫鍛ㄦ湡 - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 鏌ヨ钖祫妗f锛岃幏鍙栦汉鍛樼殑涓◣鎵g即涔夊姟浜 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); // 杞崲鎴愯柂璧勬牳绠椾汉鍛榩o Date salaryDate = SalaryDateUtil.dateStrToLocalDate(salaryYearMonth + "-01"); List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID()); //杩囨护鎺変笉灞炰簬褰撳墠璐﹀鎵g即涔夊姟浜虹殑浜哄憳 - employeeIds = salaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toList()); + employeeIds = salaryAcctEmployeePOS.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toList()); // 4.鑾峰彇鑰冨嫟妯″潡鏁版嵁 diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index b61987dde..5a0e2f28a 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -10,7 +10,7 @@ import com.engine.salary.entity.datacollection.dto.AttendQuoteListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteQueryParam; import com.engine.salary.entity.datacollection.po.AttendQuotePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; -import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AttendQuoteMapper; @@ -18,20 +18,22 @@ import com.engine.salary.service.AttendQuoteService; import com.engine.salary.service.SalaryAcctRecordService; import com.engine.salary.service.SalarySobService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryLoggerUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; import java.time.LocalDate; import java.time.YearMonth; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -56,42 +58,21 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic private TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } @Override public PageInfo listPage(AttendQuoteQueryParam queryParam) { List declareMonth = queryParam.getSalaryYearMonth(); -// SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO(); if (CollectionUtils.isNotEmpty(declareMonth)) { queryParam.setSalaryYearMonth(declareMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryYearMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); -// LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00")) -// .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build(); -// queryRecordParam.setSalaryMonths(salaryMonth); } - - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (CollectionUtils.isEmpty(salarySobIds)) { - return new PageInfo<>(AttendQuoteListDTO.class); - } - queryParam.setSalarySobIds(salarySobIds); -// queryRecordParam.setSalarySobIds(salarySobIds); - } - - // 鑾峰彇宸茬粡褰掓。鐨勮褰 -// List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam); -// List archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) -// .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId()) -// .collect(Collectors.toList()); - - List list = getAttendQuoteMapper().list(queryParam); -// list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) )); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AttendQuoteListDTO.class); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteListDTO.class); @@ -103,8 +84,9 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic throw new SalaryRunTimeException("鍙傛暟閿欒"); } List attendQuotes = biz.list(AttendQuoteQueryParam.builder().ids(ids).build()); + attendQuotes = getAuthService(user).auth(attendQuotes, AuthFilterTypeEnum.ADMIN_DATA, AttendQuoteListDTO.class); if (CollectionUtils.isEmpty(attendQuotes)) { - throw new SalaryRunTimeException("瑕佸垹闄ょ殑鏁版嵁涓嶅瓨鍦ㄦ垨宸插垹闄"); + throw new SalaryRunTimeException("鏃犳潈闄愬垹闄ゆ暟鎹紒"); } List accountingAttendQuotes = attendQuotes.stream().filter(e -> e.getSalaryAccountingStatus().equals(1)).collect(Collectors.toList()); diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 9cabcfbda..a62067dda 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -17,11 +17,13 @@ import com.engine.salary.entity.datacollection.param.*; import com.engine.salary.entity.datacollection.po.*; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.*; import com.engine.salary.mapper.sys.SalarySysConfMapper; @@ -29,6 +31,8 @@ import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.OtherDeductionService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -100,6 +104,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private FreeIncomeMapper getFreeIncomeMapper() { return MapperProxyFactory.getProxy(FreeIncomeMapper.class); @@ -150,27 +158,18 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - long employeeId = user.getUID(); + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); + List list = listAuth(queryParam); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(OtherDeductionListDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } - List list = getOtherDeductionMapper().list(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, OtherDeductionListDTO.class); encryptUtil.decryptList(page.getList(), OtherDeductionListDTO.class); + SalaryI18nUtil.i18nList(page.getList()); return page; } @Override public PageInfo recordListPage(OtherDeductionQueryParam queryParam) { - long employeeId = user.getUID(); - //鐢虫姤鏈堜唤 List declareMonth = queryParam.getDeclareMonth(); if (CollectionUtils.isNotEmpty(declareMonth)) { @@ -178,18 +177,11 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction queryParam.setDeclareMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(OtherDeductionRecordDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } List list = getOtherDeductionMapper().recordList(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, OtherDeductionRecordDTO.class); encryptUtil.decryptList(page.getList(), OtherDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(page.getList()); return page; } @@ -217,9 +209,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction public Map importData(OtherDeductionImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - - long currentEmployeeId = user.getUID(); Map apidatas = new HashMap(); OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); @@ -249,7 +238,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //浜哄憳淇℃伅 List employees = getSalaryEmployeeService(user).listEmployee(); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); //绋庢鎵灞炴湡 Date declareMonth = SalaryDateUtil.stringToDate(declareMonthStr + "-01"); // 鑾峰彇宸茬粡鏍哥畻鐨勬暟鎹 @@ -262,7 +253,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //鍚堣鏁版嵁 List eligibleData = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); for (int i = 0; i < OtherDeductions.size(); i++) { OtherDeductionListDTO dto = OtherDeductions.get(i); @@ -339,10 +329,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪 Map errorMessageMap = Maps.newHashMap(); @@ -1683,7 +1672,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction * @return 瀵煎嚭鏁版嵁琛岄泦鍚 */ private List> getExcelRowList(OtherDeductionQueryParam param, boolean hasData) { - long employeeId = user.getUID(); //excel鏍囬 List title = Arrays.asList("濮撳悕", "涓◣鎵g即涔夊姟浜", "閮ㄩ棬", "鎵嬫満鍙", "宸ュ彿", "璇佷欢鍙风爜", "鍏ヨ亴鏃ユ湡", "鍏嶇◣鏀跺叆", "鍟嗕笟鍋ュ悍淇濋櫓", "绋庡欢鍏昏佷繚闄", "鍑嗕簣鎵i櫎鐨勬崘璧犻", "鍑忓厤绋庨", "鍏朵粬", "涓汉鍏昏侀噾"); List> rowList = new ArrayList<>(); @@ -1694,17 +1682,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = getOtherDeductionMapper().list(param); + param.setFilterType( AuthFilterTypeEnum.QUERY_DATA); + List list = listAuth(param); encryptUtil.decryptList(list, OtherDeductionListDTO.class); SalaryI18nUtil.i18nList(list); - // 寮鍚垎鏉冨苟涓斾笉鏄柂閰ā鍧楁荤鐞嗗憳 - if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - // 浣滀负绠$悊鍛 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } final List> dataRowList = Optional.ofNullable(list) .map(List::stream) @@ -1792,6 +1773,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //鏌ヨ璇︾粏淇℃伅 List list = getOtherDeductionMapper().recordList(param); encryptUtil.decryptList(list, OtherDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(list); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { @@ -1821,12 +1803,12 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override - public List getOtherDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId) { + public List getOtherDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds) { if (declareMonth == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100342, "鍙傛暟鏈夎锛氱敵鎶ユ湀浠藉繀浼")); } OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); - return OtherDeductionBiz.listSome(OtherDeductionPO.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + return OtherDeductionBiz.listSome(OtherDeductionPO.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); } @Override @@ -1834,15 +1816,16 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction String declareMonthStr = otherDeductionParam.getDeclareMonth(); OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); - Long currentEmployeeId = (long) user.getUID(); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); OtherDeductionPO byId = OtherDeductionBiz.getById(otherDeductionParam.getId()); if (byId == null) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); + boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getId(), taxAgentId)); if (!canEdit) { //娌℃湁缂栬緫鏉冮檺 throw new SalaryRunTimeException("璇ヤ釜绋庢墸缂翠箟鍔′汉鏃犳潈闄愮紪杈戞鏁版嵁锛"); @@ -1890,8 +1873,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public void createData(OtherDeductionParam otherDeductionParam) { long currentEmployeeId = user.getUID(); - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); //鏌ヨ瀵逛簬浜哄憳淇℃伅瀵煎叆绛涢夌殑鍏ㄥ眬閰嶇疆 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; @@ -1901,7 +1882,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //浜哄憳淇℃伅 List employees = getSalaryEmployeeService(user).listEmployee(); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); //绋庢鎵灞炴湡 Date declareMonth = SalaryDateUtil.stringToDate(declareMonthStr + "-01"); // 鑾峰彇宸茬粡鏍哥畻鐨勬暟鎹 @@ -1931,10 +1914,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //涓◣鎵g即涔夊姟浜轰笉鑳戒负绌 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉鑳戒负绌"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴 throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴"); @@ -1979,9 +1961,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public void deleteSelectData(AddUpDeductionRecordDeleteParam deleteParam) { - long currentEmployeeId = user.getUID(); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); OtherDeductionBiz otherDeductionBiz = new OtherDeductionBiz(); String declareMonthStr = deleteParam.getDeclareMonth(); List deleteIds = deleteParam.getIds(); @@ -1998,7 +1981,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction throw new SalaryRunTimeException("鏁版嵁涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎锛"); } // 鍒ゆ柇鏄惁鍦ㄤ釜绋庢墸缂翠箟鍔′汉鑼冨洿鍐 - Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getTaxAgentId(), byId.getTaxAgentId())).findFirst(); + Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getId(), byId.getTaxAgentId())).findFirst(); if (!first.isPresent()) { throw new SalaryRunTimeException("涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴"); } @@ -2034,8 +2017,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); OtherDeductionBiz otherDeductionBiz = new OtherDeductionBiz(); Date declareMonthDate = null; try { @@ -2060,6 +2045,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } // 鑾峰彇鎵鏈夋兂瑕佸垹闄ょ殑鏁版嵁 List list = otherDeductionBiz.listSome(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.ADMIN_DATA, OtherDeductionPO.class); // 鑾峰彇宸茬粡鏍哥畻鐨勬暟鎹 List salaryAcctEmployees = getAddUpDeductionService(user).getAccountedEmployeeDataByTaxYearMonth(declareMonthStr); for (OtherDeductionPO item : list) { @@ -2075,8 +2061,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction // 璁板綍鏃ュ織 Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); + List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getId())) + .map(TaxAgentPO::getName).collect(Collectors.toList()); String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setTargetName(name); @@ -2090,10 +2076,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public OtherDeductionRecordDTO getOtherDeduction(OtherDeductionParam otherDeductionParam) { - long uid = user.getUID(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(otherDeductionParam.getId()); OtherDeductionQueryParam build = OtherDeductionQueryParam.builder().ids(ids).build(); @@ -2103,10 +2085,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction if (list == null || list.size() == 0) { throw new SalaryRunTimeException("璇ユ暟鎹笉瀛樺湪锛"); } - String taxAgentName = list.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("鎮ㄦ棤鏉冩煡鐪嬭鏁版嵁!"); - } return list.get(0); } @@ -2119,13 +2097,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction i -> i.getTaxAgentId() + "" + i.getEmployeeId())); // 鏌ユ壘鍒版墍鏈変釜绋庢墸缂翠箟鍔′汉 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - Collection taxAgentPOS; - if (needAuth) { - taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - } else { - taxAgentPOS = getTaxAgentService(user).listAll(); - } + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(taxAgentQueryParam); List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); //鏌ヨ涓婃湀鏁版嵁 @@ -2196,6 +2170,13 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return ""; } + @Override + public List listAuth(OtherDeductionQueryParam queryParam) { + List list = getOtherDeductionMapper().list(queryParam); + list = getAuthService(user).auth(list, queryParam.getFilterType(), OtherDeductionListDTO.class); + return list; + } + @Override public XSSFWorkbook downloadTemplate(OtherDeductionQueryParam param) { // 1.宸ヤ綔绨垮悕绉 diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java new file mode 100644 index 000000000..9eabd3c7b --- /dev/null +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -0,0 +1,628 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; +import com.engine.salary.entity.push.param.*; +import com.engine.salary.entity.push.po.PushRecordDetailPO; +import com.engine.salary.entity.push.po.PushRecordPO; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.entity.salaryacct.bo.CalculateFormulaVarBO; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.push.PushRecordDetailStatusEnum; +import com.engine.salary.enums.push.PushRecordStatusEnum; +import com.engine.salary.enums.push.PushRecordTypeEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.push.PushRecordDetailMapper; +import com.engine.salary.mapper.push.PushRecordMapper; +import com.engine.salary.mapper.push.PushSettingItemMapper; +import com.engine.salary.mapper.push.PushSettingMapper; +import com.engine.salary.service.*; +import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.TimeUtil; +import weaver.hrm.User; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 鎺ㄩ佹湇鍔 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class PushServiceImpl extends Service implements PushService { + + private PushSettingMapper getPushSettingMapper() { + return MapperProxyFactory.getProxy(PushSettingMapper.class); + } + + private PushSettingItemMapper getPushSettingItemMapper() { + return MapperProxyFactory.getProxy(PushSettingItemMapper.class); + } + + private PushRecordMapper getPushRecordMapper() { + return MapperProxyFactory.getProxy(PushRecordMapper.class); + } + + private PushRecordDetailMapper getPushRecordDetailMapper() { + return MapperProxyFactory.getProxy(PushRecordDetailMapper.class); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) { + return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); + } + + private SalaryAcctResultService getSalaryAcctResultService(User user) { + return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); + } + + @Override + public PageInfo settingList(PushSettingQueryParam param) { + List pushSettingPOS = getPushSettingMapper().listAll(); + + List salarySobPOS = getSalarySobService(user).listAll(); + Map sobPOMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getId); + + List list = pushSettingPOS.stream() + .filter(po -> StrUtil.isBlank(param.getName()) || po.getName().contains(param.getName())).map( + po -> PushSettingDTO.builder() + .id(po.getId()) + .name(po.getName()) + .tableName(po.getTableName()) + .modeName(po.getModeName()) + .modeId(po.getModeId()) + .able(po.getAble()) + .salarySobs(po.getSalarySobIds().stream().map(sobPOMap::get).collect(Collectors.toList())) + .build()).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, PushSettingDTO.class); + } + + @Override + public PushSettingPO save(PushSettingSaveParam param) { + ValidUtil.doValidator(param); + + Date now = new Date(); + + Long id = param.getId(); + PushSettingPO po; + if (id == null) { + po = PushSettingPO.builder() + .id(IdGenerator.generate()) + .able(param.getAble()) + .name(param.getName()) + .salarySobIds(param.getSalarySobIds()) + .modeId(param.getModeId()) + .modeName(param.getModeName()) + .tableName(param.getTableName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("鎺ㄩ侀厤缃笉瀛樺湪!"); + } + po.setAble(param.getAble()); + po.setAble(param.getAble()); + po.setName(param.getName()); + po.setSalarySobIds(param.getSalarySobIds()); + po.setModeId(param.getModeId()); + po.setModeName(param.getModeName()); + po.setTableName(param.getTableName()); + po.setUpdateTime(now); + + getPushSettingMapper().update(po); + } + + return po; + } + + @Override + public void delete(Long id) { + getPushSettingMapper().delete(PushSettingPO.builder().id(id).build()); + getPushSettingItemMapper().delete(PushSettingItemPO.builder().settingId(id).build()); + } + + @Override + public PageInfo itemList(PushSettingItemQueryParam param) { + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(param.getSettingId()).build()); + + List list = pushSettingItemPOS.stream().map(po -> PushSettingItemDTO.builder() + .id(po.getId()) + .settingId(po.getSettingId()) + .item(po.getItem()) + .itemName(po.getItemName()) + .source(po.getSource()) + .sourceName(SalarySQLReferenceEnum.parseByValue(po.getSource()).getDefaultLabel()) + .fieldName(po.getFieldName()) + .fieldType(PushItemFieldEnum.parseByValue(po.getFieldType())) + .fieldTypeName(PushItemFieldEnum.parseByValue(po.getFieldType()).getDefaultLabel()) + .build() + ).collect(Collectors.toList()); + + return new PageInfo<>(list, PushSettingItemDTO.class); + } + + @Override + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + ValidUtil.doValidator(param); + Date now = new Date(); + Long id = param.getId(); + PushSettingItemPO po; + if (id == null) { + po = PushSettingItemPO.builder() + .id(IdGenerator.generate()) + .settingId(param.getSettingId()) + .item(param.getItem()) + .itemName(param.getItemName()) + .source(param.getSource()) + .fieldName(param.getFieldName()) + .fieldType(param.getFieldType().getValue()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingItemMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingItemMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("鎺ㄩ侀厤缃槑缁嗕笉瀛樺湪!"); + } + po.setSettingId(param.getSettingId()); + po.setItem(param.getItem()); + po.setItemName(param.getItemName()); + po.setSource(param.getSource()); + po.setFieldName(param.getFieldName()); + po.setFieldType(param.getFieldType().getValue()); + po.setUpdateTime(now); + + getPushSettingItemMapper().update(po); + + } + + return po; + } + + @Override + public void deleteItem(Long id) { + getPushSettingItemMapper().delete(PushSettingItemPO.builder().id(id).build()); + } + + @Override + public void pushOneRecord(Long salaryAcctRecordId) { + + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("鏍哥畻璁板綍涓嶅瓨鍦紒"); + } + + //鏌ヨ鏍哥畻浜哄憳 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + + //钖祫椤圭洰 + List salaryItemPOS = getSalaryItemService(user).listAll(); + //鏌ヨ钖祫鏍哥畻璁板綍鐨勮柂璧勫懆鏈熴佽冨嫟鍛ㄦ湡绛 + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); + + SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() + .setSalaryAcctRecordPO(salaryAcctRecordPO) + .setSalarySobPO(new SalarySobPO()) + .setSalarySobCycleDTO(salarySobCycleDTO) + .setOtherSalaryAcctRecordPOS(new ArrayList<>()) + .setSalarySobItemPOS(new ArrayList<>()) + .setSalaryItemIdWithPriorityList(new ArrayList<>()) + .setExpressFormulas(new ArrayList<>()) + .setSalaryItemPOS(salaryItemPOS) + .setSalarySobAdjustRulePOS(new ArrayList<>()) + .setWelfareColumns(new HashMap<>()) + .setAttendQuoteFieldListDTOS(new ArrayList<>()) + .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) + .setIssuedFieldIds(new HashSet<>()) + .setChildMonitor(null) + .setResults(null) + .setCalculateKey(null) + .setVariableItems(new ArrayList<>()) + .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); + + + List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); + List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + + + List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); + pushSettingPOS.stream() + .filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) + .forEach(setting -> { + + Long id = setting.getId(); + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); + + + //姣忎釜浜烘彃鍏ヤ竴鏉 + for (SalaryAcctEmployeePO emp : salaryAcctEmployeePOS) { + //1 鑾峰彇褰撳墠钖祫鏍哥畻浜哄憳鐨勫叕寮忎腑鐨勫彉閲忕殑鍊 + List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); + //2 浜哄憳淇℃伅 + List empInfo = formulaVarMap.get(emp.getEmployeeId() + ""); + formulaVarValues.addAll(empInfo); + Map formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue); + + Integer modeId = setting.getModeId(); + + List fields = new ArrayList() {{ + add("formmodeid"); + add("modedatacreater"); + add("modedatacreatertype"); + add("modedatacreatedate"); + add("modedatacreatetime"); + }}; + String currDate = TimeUtil.getCurrentDateString(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String currTime = sdf.format(new Date()); + List values = new ArrayList() {{ + add(modeId); + add(1); + add(0); + add(String.format("'%s'", currDate)); + add(String.format("'%s'", currTime)); + }}; + for (PushSettingItemPO item : pushSettingItemPOS) { + //鏁版嵁搴撳瓧娈 + String fieldName = item.getFieldName(); + fields.add(fieldName); + // 鍏紡鍙橀噺鐨勫 + String field = item.getItem(); + String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY); + PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType()); + values.add(pushItemFieldEnum.convertValue(value)); + } + String tableName = setting.getTableName(); + String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); + RecordSet rs = new RecordSet(); + rs.execute(sql); + + if (modeId != null) { + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + } + }); + } + + @Override + public void createPushRecord(Long salaryAcctRecordId) { + Date now = new Date(); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("鏍哥畻璁板綍涓嶅瓨鍦紒"); + } + + //鏌ヨ鏍哥畻浜哄憳 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + + //钖祫椤圭洰 + List salaryItemPOS = getSalaryItemService(user).listAll(); + //鏌ヨ钖祫鏍哥畻璁板綍鐨勮柂璧勫懆鏈熴佽冨嫟鍛ㄦ湡绛 + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); + + SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() + .setSalaryAcctRecordPO(salaryAcctRecordPO) + .setSalarySobPO(new SalarySobPO()) + .setSalarySobCycleDTO(salarySobCycleDTO) + .setOtherSalaryAcctRecordPOS(new ArrayList<>()) + .setSalarySobItemPOS(new ArrayList<>()) + .setSalaryItemIdWithPriorityList(new ArrayList<>()) + .setExpressFormulas(new ArrayList<>()) + .setSalaryItemPOS(salaryItemPOS) + .setSalarySobAdjustRulePOS(new ArrayList<>()) + .setWelfareColumns(new HashMap<>()) + .setAttendQuoteFieldListDTOS(new ArrayList<>()) + .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) + .setIssuedFieldIds(new HashSet<>()) + .setChildMonitor(null) + .setResults(null) + .setCalculateKey(null) + .setVariableItems(new ArrayList<>()) + .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); + + + List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); + List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + + List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); + + //鎺ㄩ佽褰昳d + List recordIds = new ArrayList<>(); + + try { + pushSettingPOS.stream() + .filter(setting -> setting.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) + .forEach(setting -> { + long recordId = IdGenerator.generate(); + recordIds.add(recordId); + PushRecordPO record = PushRecordPO.builder() + .id(recordId) + .name(setting.getName()) + .settingId(setting.getId()) + .modeId(setting.getModeId()) + .tableName(setting.getTableName()) + .acctRecordId(salaryAcctRecordId) + .type(PushRecordTypeEnum.PUSH.getValue()) + .status(PushRecordStatusEnum.DATA_PREPARE.getValue()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushRecordMapper().insertIgnoreNull(record); + + Long id = setting.getId(); + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); + + //鏋勫缓鏁版嵁锛屾瘡涓汉鍛樼敓鎴愪竴澶╂槑缁 + salaryAcctEmployeePOS.forEach(emp -> { + //1 鑾峰彇褰撳墠钖祫鏍哥畻浜哄憳鐨勫叕寮忎腑鐨勫彉閲忕殑鍊 + List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); + //2 浜哄憳淇℃伅 + List empInfo = formulaVarMap.get(emp.getEmployeeId() + ""); + formulaVarValues.addAll(empInfo); + Map formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue); + + Integer modeId = setting.getModeId(); + + List fields = new ArrayList() {{ + add("formmodeid"); + add("modedatacreater"); + add("modedatacreatertype"); + add("modedatacreatedate"); + add("modedatacreatetime"); + }}; + String currDate = TimeUtil.getCurrentDateString(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String currTime = sdf.format(new Date()); + List values = new ArrayList() {{ + add(modeId); + add(1); + add(0); + add(String.format("'%s'", currDate)); + add(String.format("'%s'", currTime)); + }}; + for (PushSettingItemPO item : pushSettingItemPOS) { + //鏁版嵁搴撳瓧娈 + String fieldName = item.getFieldName(); + fields.add(fieldName); + // 鍏紡鍙橀噺鐨勫 + String field = item.getItem(); + String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY); + PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType()); + values.add(pushItemFieldEnum.convertValue(value)); + } + String tableName = setting.getTableName(); + String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); + + PushRecordDetailPO pushRecordDetailPO = PushRecordDetailPO.builder() + .id(IdGenerator.generate()) + .acctEmpId(emp.getId()) + .recordId(record.getId()) + .status(PushRecordDetailStatusEnum.PREPARE.getValue()) + .execute(sql) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getPushRecordDetailMapper().insertIgnoreNull(pushRecordDetailPO); + }); + + //鏁版嵁鏋勫缓瀹屾瘯 + record.setUpdateTime(new Date()); + record.setStatus(PushRecordStatusEnum.DATA_FINISH.getValue()); + getPushRecordMapper().updateIgnoreNull(record); + } + ); + } catch (Exception e) { + log.error("鎺ㄩ佸け璐", e); + removeRecords(recordIds); + throw new SalaryRunTimeException("鎺ㄩ佸け璐"); + } + + //寮濮 + startBatchPush(recordIds); + + } + + /** + * 鍚姩鎺ㄩ + * + * @param recordIds + */ + private void startBatchPush(List recordIds) { + + recordIds.forEach(recordId -> { + //寰呮帹閫 + PushRecordPO pushRecordPO = getPushRecordMapper().getById(recordId); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_WAITING.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + + try { + pushRecordPO.setStartTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_PROGRESS.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); + pushRecordDetailPOS.forEach(pushRecordDetailPO -> { + + try { + String execute = pushRecordDetailPO.getExecute(); + RecordSet rs = new RecordSet(); + rs.execute(execute); + //寤烘ā闇瑕佹潈闄愰噸鏋 + Integer modeId = pushRecordPO.getModeId(); + if (modeId != null) { + String tableName = pushRecordPO.getTableName(); + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + } catch (Exception e) { + pushRecordDetailPO.setFail_reason(e.getMessage()); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); + } + }); + + pushRecordPO.setEndTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_SUCCESS.getValue()); + } catch (Exception e) { + pushRecordPO.setFail_reason(e.getMessage()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_FAIL.getValue()); + } + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + }); + } + + + @Override + public void removeRecords(List recordIds) { + recordIds.forEach(recordId -> { + PushRecordPO recordPO = getPushRecordMapper().getById(recordId); + if (recordPO != null) { + getPushRecordDetailMapper().deleteByRecordId(recordId); + getPushRecordMapper().delete(recordPO); + } + + }); + } + + @Override + public PageInfo recordList(RecordListQueryParam param) { + List pushRecordPOS = getPushRecordMapper().listAll(); + List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordPOS) + .stream() + .map(po -> PushRecordDTO.builder() + .id(po.getId()) + .name(po.getName()) + .settingId(po.getId()) + .modeId(po.getModeId()) + .tableName(po.getTableName()) + .acctRecordId(po.getAcctRecordId()) + .type(po.getType()) + .status(po.getStatus()) + .startTime(po.getStartTime()) + .endTime(po.getEndTime()) + .build()) + .collect(Collectors.toList()); + + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDTO.class); + pageInfo.setTotal(pushRecordPOS.size()); + return pageInfo; + } + + @Override + public PageInfo recordDetailList(RecordDetailListQueryParam param) { + ValidUtil.doValidator(param); + + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(param.getRecordId()).build()); + List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordDetailPOS) + .stream() + .map(po -> PushRecordDetailDTO.builder() + .id(po.getId()) + .recordId(po.getRecordId()) + .acctEmpId(po.getAcctEmpId()) + .status(po.getStatus()) + .fail_reason(po.getFail_reason()) + .execute(po.getExecute()) + .createTime(po.getCreateTime()) + .creator(po.getCreator()) + .build()) + .collect(Collectors.toList()); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDetailDTO.class); + pageInfo.setTotal(pushRecordDetailPOS.size()); + return pageInfo; + } +} diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 6c1a30028..895446f5d 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -35,6 +35,7 @@ import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.siaccount.*; import com.engine.salary.enums.sicategory.*; @@ -52,6 +53,8 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -241,30 +244,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return MapperProxyFactory.getProxy(EmployMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public Map listPage(InsuranceAccountBatchParam queryParam) { - Long employeeId = (long) user.getUID(); Map datas = new HashMap<>(); - List paymentOrganizationIds = queryParam.getTaxAgents(); - // 鍒嗘潈閫昏緫 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - if (needAuth) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); - List taxAgents = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgents)) { - //闃叉鏅氱敤鎴锋煡璇 - queryParam.setTaxAgents(Collections.singletonList(-1L)); - } else { - if (paymentOrganizationIds != null && paymentOrganizationIds.size() > 0) { - taxAgents.retainAll(paymentOrganizationIds); - } - queryParam.setTaxAgents(taxAgents); - } - } - - //绂忓埄鍙拌处鍒楄〃 -// PageInfo pageInfo = getSiAccountBiz(user).listPage(queryParam); PageInfo pageInfo = siBatchListPage(queryParam); Collection insuranceAccountBatchPOS = pageInfo.getList(); @@ -283,27 +270,6 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { table.setColumns(weaTableColumn); - //table.getColumns().get(0).setFixed("left"); -// for (int i = 0; i < insuranceAccountBatchListDTOS.size(); i++) { -// InsuranceAccountBatchListDTO insuranceAccountBatchListDTO = insuranceAccountBatchListDTOS.get(i); -// if (Objects.equals(insuranceAccountBatchListDTO.getBillStatus(), BillStatusEnum.ARCHIVED.getDefaultLabel())) { -// table.getOperates().getOperate().get(i).getIndex(); -// -// resultTable.getOperatesPermission().get(i).get(0).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(1).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(2).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(3).setVisible(false); -// resultTable.getOperates().get(4).setOuter(true); -// } -// if (Objects.equals(insuranceAccountBatchListDTO.getBillStatus(), BillStatusEnum.NOT_ARCHIVED.getDefaultLabel())) { -// resultTable.getOperatesPermission().get(i).get(4).setVisible(false); -// List insuranceAccountInspectPOS = siAccountInspectService.listByBillMonth(insuranceAccountBatchListDTO.getBillMonth(), tenantKey); -// if (CollectionUtils.isEmpty(insuranceAccountInspectPOS)) { -// resultTable.getOperatesPermission().get(i).get(2).setVisible(false); -// } -// } -// } - WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); @@ -312,20 +278,6 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { datas.put("operatesPermission", operatesPermission); datas.put("dataKey", result.getResultMap()); return datas; - -// WeaTable resultTable = FormatManager.getInstance() -// .genTable(InsuranceAccountBatchListDTO.class, insuranceAccountBatchListDTOPage); -// -// resultTable.getOperates().forEach(e -> { -// if (e.getIndex() == 0) { -// e.setOuter(true); -// } -// }); - -// resultTable.setModule("hrmsalary"); -// resultTable.getColumns().get(0).setFixed("left"); -// return WeaResult.success(resultTable); - } @Override @@ -1009,6 +961,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { list.stream().forEach(item -> { Map record = new HashMap<>(); record.put("employeeId", item.getEmployeeId()); + record.put("taxAgentId", taxAgentId); if (StringUtils.isNotEmpty(item.getSocialPerJson())) { Map socialJson = JSON.parseObject(item.getSocialPerJson(), new HashMap().getClass()); socialJson.forEach((k, v) -> { @@ -5970,6 +5923,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public PageInfo siBatchListPage(InsuranceAccountBatchParam queryParam) { List list = getInsuranceAccountBatchMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, InsuranceAccountBatchPO.class); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, InsuranceAccountBatchPO.class); encryptUtil.decryptList(page.getList(), InsuranceAccountBatchPO.class); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index dde1ff92c..8833bba7c 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -31,12 +32,12 @@ import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; -import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; @@ -50,6 +51,8 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -174,6 +177,11 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + + @Override public Map getTips(Map params) { return commandExecutor.execute(new SIArchivesTipsCmd(params, user)); @@ -181,18 +189,14 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Override public Map getBaseForm(Map params) { - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(param); Map apidatas = new HashMap<>(16); -// SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); -//// siArchivesBiz.setNeedAuth(needAuth); -//// siArchivesBiz.setTaxAgentPOS(taxAgentPOS); WelfareTypeEnum welfareTypeEnum = (WelfareTypeEnum) params.get("welfareTypeEnum"); Long employeeId = Long.valueOf(Util.null2String(params.get("employeeId"))); Long paymentOrganization = welfareTypeEnum != null ? Long.valueOf(Util.null2String(params.get("paymentOrganization"))) : null; -// apidatas = siArchivesBiz.getBaseForm(welfareTypeEnum, employeeId, (long) user.getUID(), user, paymentOrganization); apidatas = getBaseForm(welfareTypeEnum, employeeId, paymentOrganization, taxAgentPOS); return apidatas; } @@ -263,16 +267,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - param.setNeedAuth(needAuth); - if (needAuth) { - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getTaxAgentId); - param.setTaxAgentEmployeeIds(employeeIds); - param.setTaxAgentIds(taxAgentIds); - } - Map apidatas = new HashMap<>(16); // apidatas = siArchivesBiz.listPage(param, (long) user.getUID()); apidatas = listPage(param, (long) user.getUID()); @@ -366,24 +360,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService Util_DataCache.setObjVal("welfareChangeSign", "0"); return; } - // 褰撳墠鍙互绠¤緰鐨勪汉鍛 - Collection taxAgentList = new ArrayList<>(); - if (currentEmployeeId != 1L) { - taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - Collection finalTaxAgentList = taxAgentList; - taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { - Util_DataCache.setObjVal("welfareChangeSign", "0"); - return; - } - } -// Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); -// log.info("褰撳墠鍙互绠¤緰鐨勪釜绋庢墸缂翠箟鍔′汉鏁伴噺 {}锛", taxAgentList.size()); -// taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> taxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); -// if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { -// Util_DataCache.setObjVal("welfareChangeSign", "0"); -// return; -// } + log.info("鏍规嵁褰撳墠鍙互绠¤緰鐨勪釜绋庢墸缂翠箟鍔′汉绛涢夊嚭鐨勫彲澶勭悊澧為噺鏁版嵁鏁伴噺 {}锛", taxAgentEmpChangeList.size()); // 鎵鏈夌鍒╂。妗堝熀纭淇℃伅鏁版嵁 List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); @@ -492,13 +469,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService throw new SalaryRunTimeException("涓嶅厑璁稿垹闄ょぞ淇濈鍒╂。妗堬紝璇峰厛寮鍚垹闄ゆ。妗堣鍒欓厤缃紒"); } List insuranceArchivesList = getInsuranceBaseInfoMapper().listByIds(archiveIds); + insuranceArchivesList = getAuthService(user).auth(insuranceArchivesList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); - //鏌ヨ褰撳墠鐧诲綍浜哄憳绠$悊鐨勪釜绋庢墸缂翠箟鍔′汉 - List canDeleteTaxAgentIds = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()) - .stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - boolean err = insuranceArchivesList.stream().anyMatch(po -> !canDeleteTaxAgentIds.contains(po.getPaymentOrganization())); - - if (CollectionUtils.isEmpty(insuranceArchivesList) || err) { + if (CollectionUtils.isEmpty(insuranceArchivesList)) { throw new SalaryRunTimeException("绀句繚妗f涓嶅瓨鍦紝鎴栨病鏈夋潈闄愬垹闄よ绀句繚妗堬紒"); } @@ -689,7 +662,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService List> partitionInfo = Lists.partition((List) baseInfoEmployeeIds, 1000); partitionInfo.forEach(part -> moreBaseInfoPOS.addAll( getInsuranceBaseInfoMapper().getInsuranceBaseInfoListByInsuranceDetail(part))); - + List newInsuranceArchivesBaseInfoList = new ArrayList<>(); //璁剧疆绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗坕d log.info("璁剧疆绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗坕d"); @@ -766,6 +739,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } request.setPageSize(null); request.setStartNum(null); + request.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List insuranceArchivesEmployeePOS = listPageEmployeePOS(request); if (insuranceArchivesEmployeePOS == null) { insuranceArchivesEmployeePOS = new ArrayList<>(); @@ -796,16 +770,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Override public List listPageEmployeePOS(InsuranceArchivesListParam param) { - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - List list = getSocialSchemeMapper().queryEmployeeList(param); - return list.stream().filter(f -> employeeIds.contains(f.getEmployeeId())).collect(Collectors.toList()); - } - - return getSocialSchemeMapper().queryEmployeeList(param); + List list = getSocialSchemeMapper().queryEmployeeList(param); + list = getAuthService(user).auth(list, param.getFilterType(), InsuranceArchivesEmployeePO.class); + return list; } /** @@ -813,29 +780,11 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map queryInsuranceTabTotal() { - long currentEmployeeId = user.getUID(); // tab椤电鏁伴噺 Map result = new HashMap<>(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - //鑾峰彇绠$悊鐨勪汉鍛樿寖鍥 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); - List list = null; - if (needAuth) { - // 鑾峰彇浣滀负绠$悊鍛樼殑鎵鏈変釜绋庢墸缂翠箟鍔′汉鍒楄〃 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - //鑾峰彇鎵鏈夌鍒╂。妗堝熀纭淇℃伅 - List archiveListDTOS = getInsuranceBaseInfoMapper().listAll(); - list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getPaymentOrganization())).collect(Collectors.toList()); - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //涓嶆槸绠$悊鍛樼湅涓嶅埌鏁版嵁锛岃繑鍥炵┖ - if (!adminEnable) { - list = new ArrayList<>(); - } - } else { - list = getInsuranceBaseInfoMapper().listAll(); - } + + List list = getInsuranceBaseInfoMapper().listAll(); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, InsuranceArchivesBaseInfoPO.class); long stayAddTotal = 0L; long payTotal = 0L; @@ -901,17 +850,17 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "娌℃湁鍙互鎿嶄綔鐨勮褰")); } List pos = getInsuranceBaseInfoMapper().listByIds(ids); + pos = pos.stream().filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) + ||f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue())).collect(Collectors.toList()); + pos = getAuthService(user).auth(pos, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); + + if (CollectionUtil.isEmpty(pos)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "涓嶅湪褰撳墠涓◣鎵g即涔変汉鐨勪汉鍛樿寖鍥翠腑锛屼笉鍙彇娑堝仠缂")); + } List stayAddIds = new ArrayList<>(); List stayDelIds = new ArrayList<>(); - List taxAgentManageRangeEmployees = getTaxAgentService(user).listTaxAgentAndEmployee((long) user.getUID()); - List oldStayAddList = pos.stream().filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())).collect(Collectors.toList()); - - boolean isNotExist = oldStayAddList.stream().anyMatch(te -> taxAgentManageRangeEmployees.stream().noneMatch(p -> p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getPaymentOrganization()))); - if (isNotExist) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "涓嶅湪褰撳墠涓◣鎵g即涔変汉鐨勪汉鍛樿寖鍥翠腑锛屼笉鍙彇娑堝仠缂")); - } for(InsuranceArchivesBaseInfoPO po : pos) { if (po.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())) { //鏉ヨ嚜寰呭鍛樼殑鍋滅即->寰呭鍛 @@ -1124,15 +1073,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map allStayDelToStop() { - long currentEmployeeId = user.getUID(); List allBaseInfoList = getInsuranceBaseInfoMapper().listAll(); + allBaseInfoList = getAuthService(user).auth(allBaseInfoList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); if (allBaseInfoList.size() > 0) { - //绛涢夊綋鍓嶄汉鍛樺彲绠¤緰锛堜釜绋庢墸缂翠箟鍔′汉锛夎寖鍥 - Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - List paymentOrganizationList = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - Collection stayDelIds = allBaseInfoList.stream().filter(f->f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue()) - && paymentOrganizationList.contains(f.getPaymentOrganization()) && (f.getEmployeeType() == null || Objects.equals(f.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))) .map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList()); if (stayDelIds.size() > 0) { @@ -1316,15 +1260,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map allStayAddToPay() { - long currentEmployeeId = user.getUID(); List allBaseInfoList = getInsuranceBaseInfoMapper().listAll(); + allBaseInfoList = getAuthService(user).auth(allBaseInfoList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); if (allBaseInfoList.size() > 0) { - //绛涢夊綋鍓嶄汉鍛樺彲绠¤緰锛堜釜绋庢墸缂翠箟鍔′汉锛夎寖鍥 - Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - List paymentOrganizationList = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - Collection stayAddIds = allBaseInfoList.stream().filter(f->f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue()) - && paymentOrganizationList.contains(f.getPaymentOrganization()) && (f.getEmployeeType() == null || Objects.equals(f.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))) .map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList()); if (stayAddIds.size() > 0) { @@ -1349,96 +1288,59 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())) { List> baseInfoIdsPartition = Lists.partition((List) insuranceArchivesBaseInfoPO.getIds(), 100); List nowList = new ArrayList<>(); - baseInfoIdsPartition.forEach(part -> { + for (List part : baseInfoIdsPartition) { nowList.addAll(getInsuranceBaseInfoMapper().listByIds(part)); - }); + } //鍒ゆ柇褰撳墠琚搷浣滀汉鍛樻槸鍚﹂兘鍦ㄥ搴旂殑涓◣鎵g即涔夊姟浜轰笅 - List taxAgentManageRangeEmployees = getTaxAgentService(user).listTaxAgentAndEmployee((long) user.getUID()); - - boolean isNotExist = nowList.stream().anyMatch(te -> - taxAgentManageRangeEmployees.stream().noneMatch(p -> - p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getPaymentOrganization()))); - - if (isNotExist) { + nowList = getAuthService(user).auth(nowList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); + if (CollectionUtil.isEmpty(nowList)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "涓◣鎵g即涔夊姟浜轰笉瀛樺湪鎴栦笉鍦ㄦ潈闄愯寖鍥村唴锛屽垹闄ゅけ璐ワ紒")); } //缃┖绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗堢殑鏈鍚庣即绾虫湀淇℃伅锛屽苟灏嗙鍒╂。妗堝熀纭淇℃伅琛ㄧ殑鐘舵佺疆涓衡滄鍦ㄧ即绾斥 - if (nowList.size() > 0) { - List socialIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); - List fundIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); - List otherIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); + List socialIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); + List fundIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); + List otherIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); - List> socialIdsPartition = Lists.partition(socialIds, 100); - socialIdsPartition.forEach(getSocialSchemeMapper()::batchUpdateEndTimeToNull); + List> socialIdsPartition = Lists.partition(socialIds, 100); + socialIdsPartition.forEach(getSocialSchemeMapper()::batchUpdateEndTimeToNull); - List> fundIdsPartition = Lists.partition(fundIds, 100); - fundIdsPartition.forEach(getFundSchemeMapper()::batchUpdateEndTimeToNull); + List> fundIdsPartition = Lists.partition(fundIds, 100); + fundIdsPartition.forEach(getFundSchemeMapper()::batchUpdateEndTimeToNull); - List> otherIdsPartition = Lists.partition(otherIds, 100); - otherIdsPartition.forEach(getOtherSchemeMapper()::batchUpdateEndTimeToNull); - - baseInfoIdsPartition.forEach(part -> { - getInsuranceBaseInfoMapper().updateRunStatusByIds(InsuranceArchivesBaseInfoPO.builder() - .ids(part) - .runStatus(EmployeeStatusEnum.PAYING.getValue()) - .build()); - }); - nowList.forEach(targetPO -> { - DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(targetPO.getEmployeeId()); - TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization()); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(targetPO.getId())); - loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "寰呭噺鍛樻。妗-鍒犻櫎寰呭姙")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "寰呭噺鍛樻。妗-鍒犻櫎寰呭姙") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername()); -// loggerContext.setNewValues(targetPO); - SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext); - }); - } + List> otherIdsPartition = Lists.partition(otherIds, 100); + otherIdsPartition.forEach(getOtherSchemeMapper()::batchUpdateEndTimeToNull); + baseInfoIdsPartition.forEach(part -> { + getInsuranceBaseInfoMapper().updateRunStatusByIds(InsuranceArchivesBaseInfoPO.builder() + .ids(part) + .runStatus(EmployeeStatusEnum.PAYING.getValue()) + .build()); + }); + nowList.forEach(targetPO -> { + DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(targetPO.getEmployeeId()); + TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(targetPO.getId())); + loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "寰呭噺鍛樻。妗-鍒犻櫎寰呭姙")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "寰呭噺鍛樻。妗-鍒犻櫎寰呭姙") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername()); + SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext); + }); } } - @Override - public PageInfo getAdjustHistoryList(SIArchiveBaseHistoryListParam param) { - - if (param.getWelfareTypeEnum() == null) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鍙傛暟閿欒")); - } -// List adjustHistoryDTOS = siArchivesBiz.getAdjustHistoryList(param.getPaymentOrganization(), param.getEmployeeId()); - List adjustHistoryDTOS = getAdjustHistoryList(param.getPaymentOrganization(), param.getEmployeeId()); - - List targetHistory = adjustHistoryDTOS.stream() - .filter(f -> f.getWelfareType().equals(param.getWelfareTypeEnum().getValue())).collect(Collectors.toList()); - - PageInfo listPage = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), - targetHistory , InsuranceArchivesBaseHistoryDTO.class); - - return listPage; - } - @Override public PageInfo historyListByEmployeeIdAndOperator(SIArchiveBaseHistoryListParam param) { // List adjustHistoryDTOS = siArchivesBiz.getBaseHistoryByEmployeeIdAndOperator(param.getOperator(), param.getEmployeeId()); List adjustHistoryDTOS = getBaseHistoryByEmployeeIdAndOperator(param.getOperator(), param.getEmployeeId()); // 鍒嗘潈閫昏緫 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - if (needAuth) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); - List taxAgents = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgents)) { - //闃叉鏅氱敤鎴锋煡璇 - adjustHistoryDTOS = new ArrayList<>(); - } else { - adjustHistoryDTOS = adjustHistoryDTOS.stream().filter(f -> taxAgents.contains(f.getPaymentOrganization())).collect(Collectors.toList()); - } - } + adjustHistoryDTOS = getAuthService(user).auth(adjustHistoryDTOS, AuthFilterTypeEnum.QUERY_DATA, InsuranceArchivesBaseHistoryDTO.class); adjustHistoryDTOS.forEach(f -> { if (StringUtils.isNotBlank(f.getPaymentScope())) { @@ -1708,8 +1610,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService map.put("fundSchemeId", item.getFundSchemeId()); map.put("otherSchemeId", item.getOtherSchemeId()); map.put("status", item.getUserStatus() != null ? UserStatusEnum.getDefaultLabelByValue(item.getUserStatus()) : ""); - map.put("baseInfo", item.getBaseInfoId()); + map.put("baseInfoId", item.getBaseInfoId()); map.put("paymentOrganization", item.getPaymentOrganization()); + map.put("opts", item.getOpts()); if (socialItem != null) { map.put("socialName", getInsuranceSchemeMapper().querySchemeName(socialItem.getSocialSchemeId())); Map socialJson = JSON.parseObject(socialItem.getSocialPaymentBaseString(), new TypeReference>() { @@ -2371,10 +2274,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return data; } -// List list = siSchemeBiz.listAll(); - List list = getSISchemeService(user).listAll(); - // 杩囨护鍙鎬ц寖鍥 - list = filterList(list, taxAgentPOS); + List list = listAuthScheme(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); List paymentOptions = paymentOrganizationOptions(taxAgentPOS); @@ -2442,32 +2342,21 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return data; } - /*** - * @description 杩囨护娌℃湁鏉冮檺璁块棶鐨 - * @return List - * @author Harryxzy - * @date 2022/9/19 18:32 - */ - List filterList(List list, Collection taxAgentPOS){ - List ids = taxAgentPOS.stream().map(i -> String.valueOf(i.getId())).collect(Collectors.toList()); - List result = list.stream().filter(item -> { - boolean flag = true; - if (item.getSharedType()!= null && item.getSharedType().equals("1")) { - flag = false; - String taxAgentIds = item.getTaxAgentIds(); - if(org.apache.commons.lang.StringUtils.isNotBlank(taxAgentIds)){ - String splitFlag = ","; - String[] split = taxAgentIds.split(splitFlag); - for (int i = 0; i < split.length; i++) { - if (ids.contains(split[i])) { - flag = true; - } - } - } + private List listAuthScheme() { + List list = getSISchemeService(user).listAll(); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + list = list.stream().filter(po -> { + String taxAgentIdsStr = po.getTaxAgentIds(); + List taxAgentIds = new ArrayList<>(); + if (StringUtils.isNotBlank(taxAgentIdsStr)) { + taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); } - return flag; + return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); }).collect(Collectors.toList()); - return result; + return list; } /** @@ -3746,65 +3635,28 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService * @return list */ public Map listPageEmployeePOS(InsuranceArchivesListParam param, long operateId) { - //鏄惁鍒嗘潈 - Boolean needAuth = param.getNeedAuth(); - StopWatch sw = new StopWatch(); Map datas = new HashMap<>(16); - List page = new ArrayList<>(); - PageInfo pageInfo = new PageInfo<>(InsuranceArchivesEmployeePO.class); - //鑾峰彇绂忓埄妗f鍒楄〃鏁版嵁 - if (needAuth) { - Collection taxAgentEmployeeIds = param.getTaxAgentEmployeeIds(); - Collection taxAgentIds = param.getTaxAgentIds(); - log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁寮濮"); - sw.start("鑾峰彇绂忓埄妗f鍒楄〃鏁版嵁"); - if (param.isExtWelArchiveList()) { - page = getSocialSchemeMapper().queryExtEmployeeList(param); - } else { - page = getSocialSchemeMapper().queryEmployeeList(param); - } - sw.stop(); - log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁瀹屾垚锛"); - page = page.stream().filter(f -> -// taxAgentEmployeeIds.contains(f.getEmployeeId())|| - taxAgentIds.contains(f.getPaymentOrganization()) - ).collect(Collectors.toList()); - // 濉厖鎬绘暟鍜屽綋椤垫暟鎹 - // 鍒嗛〉鍙傛暟 - pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), InsuranceArchivesEmployeePO.class); - pageInfo.setTotal(page.size()); - pageInfo.setList(SalaryPageUtil.subList(pageInfo.getPageNum(), pageInfo.getPageSize(), page)); + List page; + if (param.isExtWelArchiveList()) { + page = getSocialSchemeMapper().queryExtEmployeeList(param); } else { - log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁寮濮"); - sw.start("鑾峰彇妗f鍒楄〃鏁版嵁"); - if (param.isExtWelArchiveList()) { - page = getSocialSchemeMapper().queryExtEmployeeList(param); - } else { - page = getSocialSchemeMapper().queryEmployeeList(param); - } - sw.stop(); - log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁瀹屾垚锛"); - pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), - page, InsuranceArchivesEmployeePO.class); + page = getSocialSchemeMapper().queryEmployeeList(param); } + page = getAuthService(user).auth(page, AuthFilterTypeEnum.DATA_OPT, InsuranceArchivesEmployeePO.class); + + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + page, InsuranceArchivesEmployeePO.class); + SalaryI18nUtil.i18nList(pageInfo.getList()); List> records = null; - log.info("buildTableData鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁寮濮"); - sw.start("buildTableData鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁"); if (param.getExportData() != null && param.getExportData()) { records = buildTableData(pageInfo.getList(), true); } else { records = buildTableData(pageInfo.getList(), false); } - sw.stop(); - log.info("buildTableData鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁瀹屾垚锛"); - - log.info("buildWeaTableColumns鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁寮濮"); - sw.start("buildWeaTableColumns鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁"); List columns = buildWeaTableColumns(pageInfo.getList()); - sw.stop(); - log.info("buildWeaTableColumns鏂规硶澶勭悊绂忓埄妗f鍒楄〃鏁版嵁瀹屾垚锛"); + WeaTable table = new WeaTable(); table.setColumns(columns); //璁剧疆check鏄惁鍙敤 @@ -3825,7 +3677,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService datas.put("columns", columns); datas.put("dataKey", result.getResultMap()); - log.info("鍚勬搷浣滆鏃 {}", sw.prettyPrint()); return datas; } @@ -3852,8 +3703,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService .collect(Collectors.toList()) .stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getSchemeName())).collect(Collectors.toList()); - List> taxAgentList = getTaxAgentWrapper(user).selectListAsAdmin(); - List taxAgentOption = taxAgentList.stream().map(item -> new SearchConditionOption(item.get("id").toString(), item.get("content").toString())).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentOption = taxAgentList.stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getName())).collect(Collectors.toList()); Map apidatas = new HashMap(); ConditionFactory conditionFactory = new ConditionFactory(user); diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 504142ea9..11dc2a7c0 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -31,11 +31,13 @@ import com.engine.salary.entity.sischeme.vo.SISchemeTableVO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalaryRoundingModeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.enums.sicategory.*; @@ -322,33 +324,19 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { if (queryParam.getPaymentTypeEnum() != null) { queryParam.setPaymentType(queryParam.getPaymentTypeEnum().getValue()); } - Long currentEmployeeId = (long) user.getUID(); - List insuranceSchemePOS; - Boolean needAuth = getTaxAgentService().isNeedAuth(currentEmployeeId); - if (needAuth) { -// insuranceSchemePOS = getInsuranceSchemeMapper().listByWelfareType(queryParam.getWelfareTypeEnum().getValue()); - insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam); - Boolean isAdminEnable = getTaxAgentService().isAdminEnable((long) user.getUID()); - if (isAdminEnable) { - //绠$悊鍛 - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents(currentEmployeeId); - List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); - insuranceSchemePOS = insuranceSchemePOS.stream().filter(po -> { - String taxAgentIdsStr = po.getTaxAgentIds(); - List taxAgentIds = new ArrayList<>(); - if (StringUtils.isNotBlank(taxAgentIdsStr)) { - taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); - } - return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); - }).collect(Collectors.toList()); - } else { - //鏅氱敤鎴 - insuranceSchemePOS = new ArrayList<>(); + List insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam);; + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentList = getTaxAgentService().listAuth(param); + List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + insuranceSchemePOS = insuranceSchemePOS.stream().filter(po -> { + String taxAgentIdsStr = po.getTaxAgentIds(); + List taxAgentIds = new ArrayList<>(); + if (StringUtils.isNotBlank(taxAgentIdsStr)) { + taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); } - } else { -// insuranceSchemePOS = getInsuranceSchemeMapper().listByWelfareType(queryParam.getWelfareTypeEnum().getValue()); - insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam); - } + return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); + }).collect(Collectors.toList()); PageInfo dtoPage = new PageInfo<>(InsuranceSchemeListDTO.class); dtoPage.setPageNum(queryParam.getCurrent()); @@ -970,15 +958,12 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { //鑾峰彇鎵鏈夌鍒╃被鍨嬬殑id-name缁撳悎 Map schemeNameIdMap = schemeNameIdMap(); Map welfareMap = welfareMap(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉鐨勫悕绉板拰id鐨刴ap - Map paymentNameIdMap; //鍒嗘潈 Boolean openDevolution = getTaxAgentService().isOpenDevolution(); - if (openDevolution) { - paymentNameIdMap = getTaxAgentService().listAllTaxAgentsAsAdmin((long) user.getUID()).stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); - } else { - paymentNameIdMap = getTaxAgentService().listAll().stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); - } + // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉鐨勫悕绉板拰id鐨刴ap + TaxAgentQueryParam build = TaxAgentQueryParam.builder().build(); + build.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Map paymentNameIdMap = getTaxAgentService().listAuth(build).stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId));; //鑾峰彇鎵浠ヤ釜绋庢墸缂翠箟鍔′汉鏍戝瀷 List taxAgentManageRangeEmployeeTree = getTaxAgentService().listTaxAgentAndEmployeeTree(); @@ -1234,13 +1219,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { taxAgentRangeSaveParam.setTargetParams(Collections.singletonList(taxAgentSubAdminRangeTargetParam)); taxAgentRangeSaveParam.setSync(true); param.setTaxAgentRanges(Collections.singletonList(taxAgentRangeSaveParam)); - } else { - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(100312, "璇ユ潯鏁版嵁涓嶅湪涓◣鎵g即涔夊姟浜轰汉鍛樿寖鍥村唴锛屼笉鍙鍏")); - excelComments.add(errorMessageMap); - isError = true; } - } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 16ab88f30..7a361136b 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -125,11 +125,11 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); SalarySobCycleDTO salarySobCycleDTO = salaryAcctCalculateBO.getSalarySobCycleDTO(); - Long taxAgentId = salaryAcctCalculateBO.getSalarySobPO().getTaxAgentId(); + List taxAgentIds = salaryAcctCalculateBO.getSalarySobPO().getTaxAgentIds(); sw.stop(); // 2銆佹煡璇㈣柂璧勬。妗堢殑鏁版嵁 sw.start("鏌ヨ钖祫妗f鐨勬暟鎹"); - List salaryArchiveData = getSalaryArchiveService(user).getSalaryArchiveData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveData = getSalaryArchiveService(user).getSalaryArchiveData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); sw.stop(); // 3銆佹煡璇㈠線鏈熺疮璁℃儏鍐(鏌ヨ鐨勬槸涓婁釜绋庢鎵灞炴湡鐨勭殑绱鎯呭喌) sw.start("鏌ヨ寰鏈熺疮璁℃儏鍐"); @@ -143,15 +143,18 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.stop(); // 4銆佹煡璇㈢疮璁′笓椤归檮鍔犳墸闄 sw.start("鏌ヨ绱涓撻」闄勫姞鎵i櫎"); - List addUpDeductionPOS = getAddUpDeductionService(user).getAddUpDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentId); + List addUpDeductionPOS = getAddUpDeductionService(user).getAddUpDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentIds); sw.stop(); // 5銆佹煡璇㈠叾浠栧厤绋庢墸闄 sw.start("鏌ヨ鍏朵粬鍏嶇◣鎵i櫎"); - List otherDeductionPOS = getOtherDeductionService(user).getOtherDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentId); + List otherDeductionPOS = getOtherDeductionService(user).getOtherDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentIds); sw.stop(); //6銆佹煡璇㈢ぞ淇濈鍒 sw.start("鏌ヨ绀句繚绂忓埄"); - List> welfareData = getSIAccountService(user).welfareData(salarySobCycleDTO.getSocialSecurityCycle().toString(), employeeIds, taxAgentId); + List> welfareData = new ArrayList<>(); + taxAgentIds.forEach(taxAgentId -> { + welfareData.addAll(getSIAccountService(user).welfareData(salarySobCycleDTO.getSocialSecurityCycle().toString(), employeeIds, taxAgentId)); + }); sw.stop(); // 7銆佹煡璇㈣冨嫟鏁版嵁 sw.start("鏌ヨ鑰冨嫟鏁版嵁"); @@ -165,7 +168,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.stop(); // 鏌ヨ娴姩钖祫 sw.start("鏌ヨ娴姩钖祫"); - List> variableArchiveList = getVariableArchiveService(user).listBySalaryMonthAndEmployeeIds(salarySobCycleDTO.getSalaryMonth(), employeeIds, taxAgentId); + List> variableArchiveList = getVariableArchiveService(user).listBySalaryMonthAndEmployeeIds(salarySobCycleDTO.getSalaryMonth(), employeeIds, taxAgentIds); sw.stop(); // 钖祫鍥炵畻鏃跺洖绠楀墠鐨勬牳绠楃粨鏋 (娌℃湁鍥炵畻椤) sw.start("鏌ヨ钖祫鍥炵畻鏃跺洖绠楀墠鐨勬牳绠楃粨鏋"); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 54822e860..fec3890f1 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -18,17 +18,24 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.entity.salarysob.param.SalarySobQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam; import com.engine.salary.service.*; import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; +import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -67,6 +74,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return MapperProxyFactory.getProxy(SalaryAcctEmployeeMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } @@ -79,6 +90,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return ServiceUtil.getService(SalaryAcctReportServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + // private SalaryCheckResultDetailService salaryCheckResultDetailService; // private SalaryComparisonResultService salaryComparisonResultService; @@ -424,18 +439,18 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "钖祫璐﹀涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎")); } - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); List employees = getSalaryEmployeeService(user).getEmployeeByIdsAll((List) saveParam.getEmployeeIds()); // 鏌ヨ钖祫妗f - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), saveParam.getEmployeeIds(), taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), saveParam.getEmployeeIds(), taxAgentIds); // 杞崲鎴愯柂璧勬牳绠椾汉鍛榩o List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(employees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); //杩囨护涓嶆槸鎵g即涔夊姟浜轰笅鐨勪汉鍛 - salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(ps -> Objects.equals(taxAgentId, ps.getTaxAgentId())).collect(Collectors.toList()); + salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(ps -> taxAgentIds.contains(ps.getTaxAgentId())).collect(Collectors.toList()); // 淇濆瓨钖祫鏍哥畻浜哄憳 if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "涓◣鎵g即涔夊姟浜轰笅鏃犺浜哄憳妗f淇℃伅鎴栬柂璧勭即绾虫棩鏈熶笉鍦ㄨ柂璧勫懆鏈熷唴")); @@ -587,19 +602,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //鏌ヨ璐﹀瀵瑰簲鐨勬墸缂翠箟鍔′汉 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); -// //杩囨护鎵g◣鎵g即涔夊姟浜轰笉鍖呭惈鐨勪汉鍛 -// Collection employeeIdsInTaxAgent = getTaxAgentService(user).listEmployeeIdsInTaxAgent(taxAgentId); -// salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> employeeIdsInTaxAgent.contains(salaryEmployee.getEmployeeId())).collect(Collectors.toList()); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 鏌ヨ钖祫妗f锛岃幏鍙栦汉鍛樼殑涓◣鎵g即涔夊姟浜 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); // 杞崲鎴愯柂璧勬牳绠椾汉鍛榩o List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); //杩囨护鎺変笉灞炰簬褰撳墠璐﹀鎵g即涔夊姟浜虹殑浜哄憳 - salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).collect(Collectors.toList()); // 淇濆瓨钖祫鏍哥畻浜哄憳 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { @@ -626,15 +638,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //鏌ヨ璐﹀瀵瑰簲鐨勬墸缂翠箟鍔′汉 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 鏌ヨ钖祫妗f锛岃幏鍙栦汉鍛樼殑涓◣鎵g即涔夊姟浜 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); + // 杞崲鎴愯柂璧勬牳绠椾汉鍛榩o List newEmps = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); //杩囨护鎺変笉灞炰簬褰撳墠璐﹀鎵g即涔夊姟浜虹殑浜哄憳 - newEmps = newEmps.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + newEmps = newEmps.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).collect(Collectors.toList()); Map newEmpMap = SalaryEntityUtil.convert2Map(newEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); @@ -677,15 +690,14 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // lambdaQueryChainWrapper.setTaxAgentIds(Collections.singletonList(0L)); // } - // 鏄惁鏄柂閰荤鐞嗗憳 - boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - // 鑾峰彇鑳藉绠$悊鐨勬墸缂翠箟鍔′汉 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())); - List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(param.getTaxAgent())) { lambdaQueryChainWrapper.setTaxAgentIds(param.getTaxAgent()); - } else if (!isChief) { - // 涓嶆槸钖叕鎬荤鐞嗗憳锛屽垎鏉 + } else { + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(taxAgentQueryParam); + List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + // 鍒嗘潈 if (CollectionUtils.isEmpty(canManageTaxAgentIds)) { // 鏃犳潈闄 return Collections.emptyList(); @@ -695,9 +707,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isNotEmpty(param.getSalarySob())) { lambdaQueryChainWrapper.setSalarySobIds(param.getSalarySob()); - } else if (!isChief) { - // 涓嶆槸钖叕鎬荤鐞嗗憳锛屽垎鏉 - List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds); + } else { + // 鍒嗘潈 + SalarySobQueryParam salarySobQueryParam = new SalarySobQueryParam(); + salarySobQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List salarySobPOS = getSalarySobService(user).listAuth(salarySobQueryParam); if (CollectionUtils.isEmpty(salarySobPOS)) { // 鏃犳潈闄 return Collections.emptyList(); @@ -819,6 +833,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().taxAgentIds(taxAgentIds).salaryMonths(salaryMonths).build()); } + @Override + public List listBySobAndSalaryMonth(List salarySobIds, Set salaryMonths) { + return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().salarySobIds(salarySobIds).salaryMonths(salaryMonths).build()); + } @Override public void lockEmp(SalaryAcctResultUpdateLockStatusParam updateParam) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 38a199032..e568238f4 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -29,6 +30,8 @@ import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.report.service.SalaryStatisticsReportService; import com.engine.salary.report.service.impl.SalaryStatisticsReportServiceImpl; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -132,6 +135,14 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(TaxDeclareRecordServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + + private PushService getPushService(User user) { + return ServiceUtil.getService(PushServiceImpl.class, user); + } + @Override public SalaryAcctRecordPO getById(Long id) { @@ -183,7 +194,6 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe @Override public PageInfo listPageByParam(SalaryAcctRecordQueryParam queryParam) { - long currentEmployeeId = user.getUID(); // 鍙傛暟 SalaryAcctRecordPO po = SalaryAcctRecordPO.builder().build(); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); @@ -206,25 +216,11 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } po.setSalaryMonths(localDateRange); - - // 鍒ゆ柇鏄惁寮鍚簡鍒嗘潈 - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByAdmin(); - List salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId, Collectors.toList()); - - if (CollectionUtils.isEmpty(salarySobIds)) { - return new PageInfo<>(); - } - Collection sobIds = po.getSalarySobIds(); - if (CollectionUtils.isNotEmpty(sobIds)) { - salarySobIds = (List) SalaryEntityUtil.intersectionForList(salarySobIds, sobIds); - } - po.setSalarySobIds(salarySobIds); - } - // 鏌ヨ钖祫鏍哥畻璁板綍 List salaryAcctRecordPOS = getSalaryAcctRecordMapper().listSome(po); + salaryAcctRecordPOS = getAuthService(user).auth(salaryAcctRecordPOS, AuthFilterTypeEnum.DATA_OPT, SalaryAcctRecordPO.class); + + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctRecordPOS, SalaryAcctRecordPO.class); } @@ -367,12 +363,13 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe //鑾峰彇璐﹀鎵灞炰釜绋庢墸缂翠箟鍔′汉鐨勬牳绠楄褰 SalarySobPO salarySobPO = getSalarySobService(user).getById(saveParam.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); - //鏌ヨ鎵g即涔夊姟浜轰笅鐨勬墍鏈夎处濂 - List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - //鑾峰彇璐﹀涓嬬殑鎵鏈夋牳绠楃粨鏋 - List salaryAcctRecords = listByTaxCycle(taxCycleYearRange, salarySobIds); + List taxAgentIds = salarySobPO.getTaxAgentIds(); + taxAgentIds.forEach(taxAgentId->{ + //鏌ヨ鎵g即涔夊姟浜轰笅鐨勬墍鏈夎处濂 + List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); + Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); + //鑾峰彇璐﹀涓嬬殑鎵鏈夋牳绠楃粨鏋 + List salaryAcctRecords = listByTaxCycle(taxCycleYearRange, salarySobIds); // 鑾峰彇涓◣鐢虫姤鍔熻兘鐘舵 TaxDeclarationFunctionEnum taxDeclarationFunctionEnum = getSalarySysConfService(user).getTaxDeclaration(); @@ -443,37 +440,36 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe throw new SalaryRunTimeException("涓◣鐢虫姤鍔熻兘寮傚父"); } - LocalDateRange taxCycleRebootYearRange = LocalDateRange.builder() - .fromDate(taxDeclarationRebootDate) - .endDate(SalaryDateUtil.getLastDayOfYear(taxDeclarationRebootDate)) - .build(); + LocalDateRange taxCycleRebootYearRange = LocalDateRange.builder() + .fromDate(taxDeclarationRebootDate) + .endDate(SalaryDateUtil.getLastDayOfYear(taxDeclarationRebootDate)) + .build(); // List salaryAcctRebootRecords = listByTaxCycle(taxCycleRebootYearRange,salarySobIds); - List salaryAcctRebootRecords = listByCreateDate(taxCycleRebootYearRange, salarySobIds); - SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRebootRecords.stream() - .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "绋庢鎵灞炴湡{0}鐨勮柂璧勬牳绠楃粨鏋滆繕鏈敵鎶ワ紝涓嶈兘鏂板缓绋庢鎵灞炴湡{1}鐨勮柂璧勬牳绠") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + List salaryAcctRebootRecords = listByCreateDate(taxCycleRebootYearRange, salarySobIds); + SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRebootRecords.stream() + .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "绋庢鎵灞炴湡{0}鐨勮柂璧勬牳绠楃粨鏋滆繕鏈敵鎶ワ紝涓嶈兘鏂板缓绋庢鎵灞炴湡{1}鐨勮柂璧勬牳绠") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + + // 濡傛灉鏌愪釜鏈堬紙绋庢鎵灞炴湡锛夊凡缁忕敵鎶ヤ簡锛屼笉鍙互鏂板缓鏈湀浠ュ強涔嬪墠鏈堜唤鐨勮柂璧勬牳绠 + SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) + .findAny() + .orElse(null); + if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "绋庢鎵灞炴湡{0}鐨勮柂璧勬牳绠楃粨鏋滃凡缁忕敵鎶ワ紝涓嶈兘鏂板缓绋庢鎵灞炴湡{1}鐨勮柂璧勬牳绠") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } } - - // 濡傛灉鏌愪釜鏈堬紙绋庢鎵灞炴湡锛夊凡缁忕敵鎶ヤ簡锛屼笉鍙互鏂板缓鏈湀浠ュ強涔嬪墠鏈堜唤鐨勮柂璧勬牳绠 - SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) - .findAny() - .orElse(null); - if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "绋庢鎵灞炴湡{0}鐨勮柂璧勬牳绠楃粨鏋滃凡缁忕敵鎶ワ紝涓嶈兘鏂板缓绋庢鎵灞炴湡{1}鐨勮柂璧勬牳绠") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - - } - + }); } @@ -713,6 +709,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe getSalaryStatisticsReportService(user).removeReportCache(); + //鑾峰彇鎺ㄩ侀厤缃 +// getPushService(user).initPushConfig(salaryAcctRecordId); + + // 璁板綍鏃ュ織 String targetName = getLogTargetNameById(salaryAcctRecordId); LoggerContext loggerContext = new LoggerContext<>(); @@ -790,9 +790,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 鏌ヨ绋庢鎵鍦ㄥ勾鐨勮涓◣鎵g即涔夊姟浜烘墍鏈夎柂璧勬牳绠楄褰 // 鑾峰彇璐﹀鎵灞炰釜绋庢墸缂翠箟鍔′汉鐨勬牳绠楄褰 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); //鏌ヨ鎵g即涔夊姟浜轰笅鐨勬墍鏈夎处濂 - List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); + List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(taxAgentIds); Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); List salaryAcctRecordPOS = listByTaxCycle(yearRange, salarySobIds); List selfSalaryAcctRecordPOS = filterByAuthority(salaryAcctRecordPOS); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index cd3cac891..e3f28d998 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -28,7 +28,6 @@ import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.po.*; -import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; @@ -1376,17 +1375,17 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public Boolean checkAuth(Long salaryAcctRecordId) { // 鑾峰彇璇ユ牳绠楄褰曠殑涓◣鎵g即涔夊姟 - SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); - if (Objects.isNull(recordPO)) { - return false; - } - SalarySobPO salarySobPO = getSalarySobService(user).getById(recordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); - List adminTaxAgentList = getTaxAgentAdminService(user).listByEmployeeId(Long.valueOf(user.getUID())); - Optional canOperate = adminTaxAgentList.stream().filter(po -> NumberUtils.compare(taxAgentId, po.getTaxAgentId()) == 0).findFirst(); - if (!canOperate.isPresent()) { - return false; - } +// SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); +// if (Objects.isNull(recordPO)) { +// return false; +// } +// SalarySobPO salarySobPO = getSalarySobService(user).getById(recordPO.getSalarySobId()); +// Long taxAgentId = salarySobPO.getTaxAgentId(); +// List adminTaxAgentList = getTaxAgentAdminService(user).listByEmployeeId((long) user.getUID()); +// Optional canOperate = adminTaxAgentList.stream().filter(po -> NumberUtils.compare(taxAgentId, po.getTaxAgentId()) == 0).findFirst(); +// if (!canOperate.isPresent()) { +// return false; +// } return true; } diff --git a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java index 8eba89c7a..e06e5d07d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java @@ -164,7 +164,7 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc } @Override - public void save(SalaryAcctSobConfigPO salaryAcctSobConfig) { + public synchronized void save(SalaryAcctSobConfigPO salaryAcctSobConfig) { deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctSobConfig.getSalaryAcctRecordId())); getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); String cacheIndex = salaryAcctSobConfig.getSalaryAcctRecordId().toString(); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index da4c5500d..9fe6d8191 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -21,11 +21,14 @@ import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -89,6 +92,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SalaryArchiveBiz salaryArchiveMapper = new SalaryArchiveBiz(); private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz(); @@ -311,17 +318,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch rows.add(header); // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 Collection taxAgentList = getTaxAgentService(user).listAll(); - Collection salaryArchives = salaryArchiveService(user).getSalaryArchiveList(queryParam); + List salaryArchives = salaryArchiveService(user).getSalaryArchiveList(queryParam); + salaryArchives = getAuthService(user).auth(salaryArchives, AuthFilterTypeEnum.ADMIN_DATA, SalaryArchiveListDTO.class); - long employeeId = user.getUID(); - if (getTaxAgentService(user).isNeedAuth(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - salaryArchives = salaryArchives.stream() - .filter(f -> - // 浣滀负绠$悊鍛 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } if (queryParam.getHasData()) { List> listMaps = salaryArchiveService(user) .buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index bfa95886f..3468dea48 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -21,12 +21,12 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.*; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; @@ -35,6 +35,8 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; import com.engine.salary.mapper.archive.SalaryArchiveMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -133,6 +135,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe return ServiceUtil.getService(SalarySobServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + //涓绘璐﹀彿鏄惁寮鍚 boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); @@ -187,7 +193,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe if (Objects.nonNull(queryParam.getPayEndDateEndDateStr())) { queryParam.setPayEndDateEndDate(SalaryDateUtil.stringToDate(queryParam.getPayEndDateEndDateStr())); } - List list = getSalaryArchiveMapper().list(queryParam); // 杩囨护璋冭柂鏃ユ湡 @@ -228,9 +233,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe }.start(); } - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); @@ -245,18 +247,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe }) .collect(Collectors.toList()); - if (needAuth) { - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //涓嶆槸绠$悊鍛樼湅涓嶅埌鏁版嵁锛岃繑鍥炵┖ - if (!adminEnable) { - PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class); - return pageInfo; - } - // 鑾峰彇浣滀负绠$悊鍛樼殑鎵鏈変釜绋庢墸缂翠箟鍔′汉鍒楄〃 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - list = list.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - } + //鑳芥煡鐪嬪摢浜涙。妗 + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT , SalaryArchiveListDTO.class); + + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class); pageInfo.setTotal(list.size()); pageInfo.setList(SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), list)); @@ -390,36 +384,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public List list(SalaryArchiveQueryParam queryParam) { - long currentEmployeeId = user.getUID(); - //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //涓嶆槸绠$悊鍛樼湅涓嶅埌鏁版嵁锛岃繑鍥炵┖ - if (!adminEnable) { - return new ArrayList<>(); - } - - //鑾峰彇绠$悊鐨勪汉鍛樿寖鍥 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeId = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //鑾峰彇鎵鏈夎柂璧勬。妗 - List list = getSalaryArchiveList(queryParam); - List finalAllArchive = list.stream().filter(dto -> employeeId.contains(dto.getEmployeeId()) && taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - return finalAllArchive; - } else { - return getSalaryArchiveList(queryParam); - } + List list = getSalaryArchiveList(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), SalaryArchiveListDTO.class); } /** @@ -525,6 +495,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe map.put("payEndDate", SalaryDateUtil.getFormatLocalDate(e.getPayEndDate())); map.put("companystartdate", e.getCompanystartdate()); map.put("dismissdate", e.getDismissdate()); + map.put("opts", e.getOpts()); // 钖祫椤圭洰鍔ㄦ Optional> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); @@ -571,29 +542,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - Collection salaryArchives = getSalaryArchiveList(queryParam); + List salaryArchives = getSalaryArchiveList(queryParam); //鍒嗘潈 - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(employeeId); - if (!adminEnable) { - salaryArchives = new ArrayList<>(); - } else { + salaryArchives = getAuthService(user).auth(salaryArchives, AuthFilterTypeEnum.QUERY_DATA, SalaryArchiveListDTO.class); - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //鑾峰彇绠$悊鎵g即鍗曚綅钖祫妗f - salaryArchives = salaryArchives.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - //杩囨护妗f鐘舵 - if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) { - //杩囨护妗f鐘舵 - salaryArchives = salaryArchives.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList()); - } - } - } List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); // 缁勮鏁版嵁 @@ -809,7 +762,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe LoggerContext loggerContext = new LoggerContext(); loggerContext.setUser(user); loggerContext.setTargetId(String.valueOf(e.getId())); - loggerContext.setTargetName(Optional.ofNullable(taxAgentMap.get(e.getTaxAgentId())).orElse(StringUtils.EMPTY) + bar + Optional.ofNullable(empMap.get(e.getEmployeeId())).orElse(StringUtils.EMPTY)); + loggerContext.setTargetName( Optional.ofNullable(taxAgentMap.get(e.getTaxAgentId())).orElse(StringUtils.EMPTY) + bar + Optional.ofNullable(empMap.get(e.getEmployeeId())).orElse(StringUtils.EMPTY) ); loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); loggerContext.setOperateTypeName(operatedesc); loggerContext.setOperatedesc(operatedesc); @@ -842,13 +795,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } @Override - public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId) { - return getSalaryArchiveData(localDateRange, employeeIds, taxAgentId, Boolean.FALSE); + public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds) { + return getSalaryArchiveData(localDateRange, employeeIds, taxAgentIds, Boolean.FALSE); } @Override - public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId) { - return getSalaryArchiveData(localDateRange, employeeIds, taxAgentId, Boolean.TRUE); + public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds) { + return getSalaryArchiveData(localDateRange, employeeIds, taxAgentIds, Boolean.TRUE); } /** @@ -859,7 +812,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe * @param isOnlyTaxAgent * @return */ - private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId, boolean isOnlyTaxAgent) { + private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds, boolean isOnlyTaxAgent) { // 鑾峰彇鏍哥畻浜哄憳瑙勫垯 List statusList = Collections.emptyList(); SalarySysConfPO employeeRule = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_ACCT_EMPLOYEE_RULE); @@ -872,7 +825,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe statusList = Arrays.asList(SalaryArchiveStatusEnum.FIXED.getValue(), SalaryArchiveStatusEnum.SUSPEND.getValue()); } // 鑾峰彇钖祫妗f鏁版嵁 - List salaryArchiveList = listSome(SalaryArchivePO.builder().runStatusList(statusList).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + List salaryArchiveList = listSome(SalaryArchivePO.builder().runStatusList(statusList).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); List allEmployeeIds = salaryArchiveList.stream().map(SalaryArchivePO::getEmployeeId).distinct().collect(Collectors.toList()); // 鑾峰彇鎵鏈夊彲琚紩鐢ㄧ殑钖祫椤圭洰 @@ -1089,36 +1042,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map queryTabTotal() { - long currentEmployeeId = user.getUID(); - // tab椤电鏁伴噺 Map result = new HashMap<>(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - - //鑾峰彇绠$悊鐨勪汉鍛樿寖鍥 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); - List list = new ArrayList<>(); - if (needAuth) { - // 鑾峰彇浣滀负绠$悊鍛樼殑鎵鏈変釜绋庢墸缂翠箟鍔′汉鍒楄〃 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //鑾峰彇鎵鏈夎柂璧勬。妗 - List archiveListDTOS = getSalaryArchiveMapper().listAll(); - list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //涓嶆槸绠$悊鍛樼湅涓嶅埌鏁版嵁锛岃繑鍥炵┖ - if (!adminEnable) { - list = new ArrayList<>(); - } - - } else { - list = getSalaryArchiveMapper().listAll(); - } + List list = getSalaryArchiveMapper().listAll(); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, SalaryArchivePO.class); long pendingTotal = 0L; long fixedTotal = 0L; @@ -1241,8 +1170,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map allGotoFixed(SalaryArchiveQueryParam queryParam) { queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue())); - List salaryArchiveIds = this.list(queryParam) - .stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List salaryArchiveIds = this.list(queryParam).stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); return this.gotoFixed(salaryArchiveIds); } @@ -1295,6 +1224,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map allGotoStop(SalaryArchiveQueryParam queryParam) { queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.SUSPEND.getValue())); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); List salaryArchiveIds = this.list(queryParam) .stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); return this.gotoStop(salaryArchiveIds); @@ -1365,24 +1295,14 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "鍙傛暟閿欒")); } - List oldList = listSome( - SalaryArchivePO.builder() - .ids(ids) - .runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) - .build()); + SalaryArchivePO param = SalaryArchivePO.builder() + .ids(ids) + .runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) + .build(); + List oldList = listSome(param); + oldList = getAuthService(user).auth(oldList, AuthFilterTypeEnum.ADMIN_DATA, SalaryArchivePO.class); - - if (CollectionUtils.isEmpty(oldList)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "妗f涓嶅瓨鍦紒")); - } - - - List taxAgentManageRangeEmployees = getTaxAgentService(user).listAllTaxAgentAndEmployee(); - List oldPendingList = oldList.stream().filter(f -> f.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())).collect(Collectors.toList()); - boolean isNotExist = oldPendingList.stream().anyMatch(te -> taxAgentManageRangeEmployees.stream().noneMatch(p -> p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getTaxAgentId()))); - if (isNotExist) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "涓嶅湪褰撳墠涓◣鎵g即涔変汉鐨勪汉鍛樿寖鍥翠腑锛屼笉鍙彇娑堝仠钖")); - } + ids = SalaryEntityUtil.properties(oldList, SalaryArchivePO::getId); // 浠庡仠钖埌寰呭畾钖 getSalaryArchiveMapper().gotoPendingFromStop(ids); // 浠庡仠钖埌瀹氳柂 diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 4df8aa8f2..41bec2448 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -6,13 +6,12 @@ import com.alibaba.fastjson.JSONArray; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.biz.SalarySendBiz; import com.engine.salary.biz.SalarySendInfoBiz; import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.HrmSalaryPayrollConf; -import com.engine.hrmelog.entity.dto.LoggerContext; -import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.progress.ProgressDTO; import com.engine.salary.entity.salaryBill.bo.SalaryBillBO; import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO; @@ -26,7 +25,6 @@ import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.salarybill.*; import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; @@ -46,7 +44,6 @@ import com.weaver.util.threadPool.entity.LocalRunnable; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; @@ -226,9 +223,8 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } } try { - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySob.getTaxAgentId()); // 1.鏋勫缓鍙戦佸弬鏁 - SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, taxAgentPO.getName(), salaryTemplate); + SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, salaryTemplate); // 2.鑾峰彇鍙彂閫佺殑鍒楄〃锛屾姝ユ渶鑰楁椂锛岄渶瑕佽В瀵嗘牳绠楁暟鎹 List sendStatusList = Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue(), SalarySendStatusEnum.ALREADYSEND.getValue()); List> enableSendList = getEnableSendList(salarySend, ids, salaryBillSendParam, sendStatusList); @@ -256,10 +252,8 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService private void handleGrant(SalarySendPO salarySend, List ids, SalarySobPO salarySob, SalaryTemplatePO salaryTemplate) { try { - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySob.getTaxAgentId()); - // 1.鏋勫缓鍙戦佸弬鏁 - SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, taxAgentPO.getName(), salaryTemplate); + SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, salaryTemplate); // 2.鑾峰彇鍙彂閫佺殑鍒楄〃锛屾姝ユ渶鑰楁椂锛岄渶瑕佽В瀵嗘牳绠楁暟鎹 List sendStatusList = Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()); @@ -310,12 +304,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } private void genPdf(SalaryBillSendDTO salaryBillSendParam, List> enableSendList) { - // 鑾峰彇浜哄憳瀹屾暣淇℃伅 - Map allEmployeeMap = getEmployeeWholeInfo(enableSendList); //鐢熸垚宸ヨ祫鍗昿df enableSendList.forEach(e -> { // 鏋勫缓浜哄憳淇℃伅 - SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); + SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, e); SalaryBillBO.genPdf(e, salaryBillSendParam); }); @@ -334,11 +326,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService * 鏋勫缓鍙戦佸弬鏁 * * @param salarySend - * @param taxAgentName * @param salaryTemplate * @return */ - public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) { + public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, SalaryTemplatePO salaryTemplate) { // 鍙戦侀氶亾 Set sendChannels = SalaryBillBO.buildSendChannels(salaryTemplate); if (CollectionUtils.isEmpty(sendChannels)) { @@ -407,8 +398,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService .backgroundBase64(backgroundBase64) // 浜戞ˉ宸ヨ祫鍗曟秷鎭浘 .picUrl(picUrl) - // 鎵g即涔夊姟浜哄悕绉 - .taxAgentName(taxAgentName) // 宸ヨ祫鍗曟ā鏉-钖祫椤圭洰璁剧疆 .salaryItemSetList(salaryItemSetList) // 宸ヨ祫鍗曟ā鏉-鍛樺伐鍩烘湰淇℃伅 @@ -461,11 +450,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } } -// // 鏄惁鏄悎骞惰绋 -// boolean isMerge = this.getSalarySendService(user).isMergeBySalarySend(salarySend); List salaryAcctEmployeeList = this.getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salarySend.getSalaryAccountingId()); List acctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()); list = list.stream().filter(f -> acctEmployeeIds.contains(f.getEmployeeId())).collect(Collectors.toList()); + SalaryI18nUtil.i18nList(list); List employeeIds = list.stream().map(SalarySendInfoListDTO::getEmployeeId).collect(Collectors.toList()); @@ -665,9 +653,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService Set sendChannels = salaryBillSendParam.getSendChannels(); - // 鑾峰彇浜哄憳瀹屾暣淇℃伅 - Map allEmployeeMap = this.getEmployeeWholeInfo(enableSendList); - List sendInfoUpdateList = Lists.newArrayList(); AtomicInteger index = new AtomicInteger(0); AtomicInteger part = new AtomicInteger(0); @@ -680,7 +665,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService if (sendChannels.contains(MessageChannelEnum.EMAIL) || sendChannels.contains(MessageChannelEnum.SMS)) { // 鏋勫缓浜哄憳淇℃伅 - SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); + SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, e); //鍙戦侀偖浠 if (sendChannels.contains(MessageChannelEnum.EMAIL)) { @@ -714,20 +699,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService return sendInfoUpdateList.stream().map(SalarySendInfoPO::getId).collect(Collectors.toList()); } - /** - * 鑾峰彇浜哄憳瀹屾暣淇℃伅 - * - * @param enableSendList - * @return - */ - private Map getEmployeeWholeInfo(List> enableSendList) { - - List ids = enableSendList.stream().map(e -> Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList()); - - // 鑾峰彇鎵鏈変汉鍛樹俊鎭 - List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(ids); - return SalaryEntityUtil.convert2Map(simpleEmployees, e -> e.getEmployeeId() + ""); - } // /** 宸ヨ祫鍗曞彂鏀 end **********************************************************************/ /** diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 9e2bc85af..6af87b45c 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -614,6 +614,18 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee } return SalaryI18nUtil.i18nList(employeeList); } + @Override + public List listBySubCompany(List subCompanyIds) { + return getEmployMapper().listBySubCompany(subCompanyIds); + } + @Override + public List listByDepartment(List departmentIds) { + return getEmployMapper().listByDepartment(departmentIds); + } + @Override + public List listByJob(List jobIds) { + return getEmployMapper().listByJob(jobIds); + } @Override public Map mapByEmployeeIds(Collection employeeIds) { diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 00b8d6098..298bb2ebe 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; @@ -22,8 +23,10 @@ import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.*; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryformula.ReferenceTypeEnum; import com.engine.salary.enums.salaryformula.ReturnTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; @@ -168,36 +171,26 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService @Override public PageInfo listPageByParam(SalaryItemSearchParam searchParam) { - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable((long) user.getUID()); List salaryItemPOS = salaryItemBiz.listByParam(searchParam); - if (needAuth) { - if (isAdminEnable) { - //绠$悊鍛 - Set userTaxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()) - .stream().map(TaxAgentPO::getId).collect(Collectors.toSet()); - salaryItemPOS = salaryItemPOS.stream() - .filter(po -> filterInRange(userTaxAgentIds, po)) - .sorted(new Comparator() { - @Override - public int compare(SalaryItemPO o1, SalaryItemPO o2) { - if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { - Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); - Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); - return systemType1.compareTo(systemType2); - } else { - Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); - Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); - return sortedIndex2.compareTo(sortedIndex1); - } - } - }) - .collect(Collectors.toList()); - } else { - //鏅氱敤鎴 - salaryItemPOS = new ArrayList<>(); - } - } + + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentPOS = getTaxAgentService(user).listAuth(param); + Set userTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS,TaxAgentPO::getId); + salaryItemPOS = salaryItemPOS.stream() + .filter(po -> filterInRange(userTaxAgentIds, po)) + .sorted((o1, o2) -> { + if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { + Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); + Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); + return systemType1.compareTo(systemType2); + } else { + Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); + Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); + return sortedIndex2.compareTo(sortedIndex1); + } + }) + .collect(Collectors.toList()); return SalaryPageUtil.buildPage(searchParam.getCurrent(), searchParam.getPageSize(), salaryItemPOS); } @@ -460,10 +453,10 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService Set salarySobIds = SalaryEntityUtil.properties(salarySobItemList, SalarySobItemPO::getSalarySobId); List salarySobs = getSalarySobService(user).listByIds(salarySobIds); // 鑾峰彇鑳藉绠$悊鐨勪箟鍔′汉 - Boolean isChief = getTaxAgentService(user).isChief(Long.valueOf(user.getUID())); + Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); if (!isChief) { - Set taxAgentIds = SalaryEntityUtil.properties(getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())), TaxAgentPO::getId); - salarySobs = salarySobs.stream().filter(sob -> taxAgentIds.contains(sob.getTaxAgentId())).collect(Collectors.toList()); + Set taxAgentIds = SalaryEntityUtil.properties(getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()), TaxAgentPO::getId); + salarySobs = salarySobs.stream().filter(sob -> CollectionUtil.intersection(taxAgentIds, sob.getTaxAgentIds()).size() > 0).collect(Collectors.toList()); } return salarySobs.stream().map(m -> { Map map = new HashMap<>(); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 30662220c..53c1dcaa3 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -58,6 +58,8 @@ import com.engine.salary.mapper.salarybill.SalarySendInfoMapper; import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -200,6 +202,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SQLMapper getSQLMapper() { return MapperProxyFactory.getProxy(SQLMapper.class); } @@ -250,9 +256,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(Collections.singletonList(salaryAccountingId)); - // 鏍规嵁浜哄憳id鍘婚噸 - salaryAcctEmployees = salaryAcctEmployees.stream() - .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId))), ArrayList::new)); +// // 鏍规嵁浜哄憳id鍘婚噸 +// salaryAcctEmployees = salaryAcctEmployees.stream() +// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId))), ArrayList::new)); // 1.鍥炵畻锛氬鏋滄槸鍥炵畻锛宼odo 瑕佺瓑鍘熷鏍哥畻鍙戝畬鎴栬呬笂涓涓洖绠楄褰曞彂瀹屾墠琛岋紝鐩墠鏈澶氬彧鏈変竴涓洖绠楄褰 if (Objects.equals(acctRecords.get(0).getBackCalcStatus(), (NumberUtils.INTEGER_ONE))) { @@ -435,6 +441,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return pageInfo; } + @Override + public List list(SalarySendQueryParam queryParam) { + List list = mapper.list(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), SalarySendListDTO.class); + } + @Override public SalarySendBaseInfoDTO getBaseInfo(Long id) { SalarySendPO salarySend = mapper.getById(id); @@ -577,7 +589,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 鑾峰彇钖祫椤圭洰鏁版嵁 Long salaryAcctRecordId = salarySendInfo.getSalaryAcctRecordId(); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(employeeId).build()); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salaryAcctRecordId) + .taxAgentId(salarySendInfo.getTaxAgentId()) + .employeeId(employeeId) + .build(); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(build); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("钖祫鏍哥畻缁撴灉涓嶅瓨鍦紒"); } @@ -655,10 +672,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } } - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(employeeId); SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); + TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(acctEmployeePO.getTaxAgentId()); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); @@ -910,7 +927,30 @@ public class SalarySendServiceImpl extends Service implements SalarySendService */ private SalaryTemplatePO buildSalaryTemplateContent(String salaryTemplateContent) { Map map = JsonUtil.parseMap(salaryTemplateContent, Object.class); - SalaryTemplatePO build = SalaryTemplatePO.builder().id(Long.valueOf(map.getOrDefault("id", "0").toString())).ackFeedbackStatus(Integer.valueOf(map.getOrDefault("ackFeedbackStatus", "0").toString())).autoAckDays(Integer.valueOf(map.getOrDefault("autoAckDays", "0").toString())).feedbackUrl(map.getOrDefault("feedbackUrl", "").toString()).mobileFeedbackUrl(map.getOrDefault("mobileFeedbackUrl", "").toString()).name(map.getOrDefault("name", "").toString()).salarySobId(Long.valueOf(map.getOrDefault("salarySobId", "0").toString())).useType(Integer.valueOf(map.getOrDefault("useType", "0").toString())).description(map.getOrDefault("description", "").toString()).emailStatus(Integer.valueOf(map.getOrDefault("emailStatus", "0").toString())).sendEmailId(Long.valueOf(map.getOrDefault("sendEmailId", "0").toString())).msgStatus(Integer.valueOf(map.getOrDefault("msgStatus", "0").toString())).salaryWatermark(map.getOrDefault("salaryWatermark", StringUtils.EMPTY).toString()).theme(map.getOrDefault("theme", "").toString()).background(map.getOrDefault("background", "").toString()).textContent(map.getOrDefault("textContent", "").toString()).textContentPosition(Integer.valueOf(map.getOrDefault("textContentPosition", "0").toString())).salaryItemNullStatus(Integer.valueOf(map.getOrDefault("salaryItemNullStatus", "0").toString())).salaryItemZeroStatus(Integer.valueOf(map.getOrDefault("salaryItemZeroStatus", "0").toString())).salaryItemSetting(map.getOrDefault("salaryItemSetting", "").toString()).replenishName(map.getOrDefault("replenishName", "").toString()).replenishSalaryItemSetting(map.getOrDefault("replenishSalaryItemSetting", "").toString()).build(); + SalaryTemplatePO build = SalaryTemplatePO.builder() + .id(Long.valueOf(map.getOrDefault("id", "0").toString())) + .ackFeedbackStatus(Integer.valueOf(map.getOrDefault("ackFeedbackStatus", "0").toString())) + .autoAckDays(Integer.valueOf(map.getOrDefault("autoAckDays", "0").toString())) + .feedbackUrl(map.getOrDefault("feedbackUrl", "").toString()) + .mobileFeedbackUrl(map.getOrDefault("mobileFeedbackUrl", "").toString()) + .name(map.getOrDefault("name", "").toString()) + .salarySobId(Long.valueOf(map.getOrDefault("salarySobId", "0").toString())) + .useType(Integer.valueOf(map.getOrDefault("useType", "0").toString())) + .description(map.getOrDefault("description", "").toString()) + .emailStatus(Integer.valueOf(map.getOrDefault("emailStatus", "0").toString())) + .sendEmailId(Long.valueOf(map.getOrDefault("sendEmailId", "0").toString())) + .msgStatus(Integer.valueOf(map.getOrDefault("msgStatus", "0").toString())) + .salaryWatermark(map.getOrDefault("salaryWatermark", StringUtils.EMPTY).toString()) + .theme(map.getOrDefault("theme", "").toString()) + .background(map.getOrDefault("background", "").toString()) + .textContent(map.getOrDefault("textContent", "").toString()) + .textContentPosition(Integer.valueOf(map.getOrDefault("textContentPosition", "0").toString())) + .salaryItemNullStatus(Integer.valueOf(map.getOrDefault("salaryItemNullStatus", "0").toString())) + .salaryItemZeroStatus(Integer.valueOf(map.getOrDefault("salaryItemZeroStatus", "0").toString())) + .salaryItemSetting(map.getOrDefault("salaryItemSetting", "").toString()) + .replenishName(map.getOrDefault("replenishName", "").toString()) + .replenishSalaryItemSetting(map.getOrDefault("replenishSalaryItemSetting", "").toString()) + .build(); Object feedbackStatus = map.get("feedbackStatus"); if (feedbackStatus == null || StringUtils.isBlank(feedbackStatus.toString())) { build.setFeedbackStatus(build.getAckFeedbackStatus()); @@ -991,16 +1031,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (CollectionUtils.isEmpty(list)) { return listMaps; } - // 鑾峰彇钖祫椤圭洰鏁版嵁 -// List salaryAccountingResults = new LambdaQueryChainWrapper<>(salaryAcctResultMapper) -// .eq(SalaryAcctResultPO::getDeleteType, 0) -// .eq(SalaryAcctResultPO::getSalaryAcctRecordId, salaryAccountingId).list(); - SalaryAcctResultPO po = new SalaryAcctResultPO(); - po.setDeleteType(0); - po.setSalaryAcctRecordId(salaryAccountingId); - po.setEmployeeIds(list.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList())); - List salaryAccountingResults = getSalaryAcctResultMapper().listSome(po); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salaryAccountingId) + .employeeIds(list.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList())) + .build(); + List salaryAccountingResults = getSalaryAcctResultMapper().listSome(build); encryptUtil.decryptList(salaryAccountingResults, SalaryAcctResultPO.class); // 鍔ㄦ佸垪 List employeeList = getExtEmpService(user).listEmployee(); @@ -1025,7 +1061,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("jobNum", Objects.equals(employeeType, 1) ? extEmp.getWorkcode() : e.getJobNum()); map.put("email", Objects.equals(employeeType, 1) ? extEmp.getEmail() : e.getEmail()); salaryItems.forEach(i -> { - Optional optional = salaryAccountingResults.stream().filter(r -> r.getEmployeeId().equals(e.getEmployeeId()) && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))).findFirst(); + Optional optional = salaryAccountingResults.stream() + .filter(r -> r.getTaxAgentId().equals(e.getTaxAgentId()) + && r.getEmployeeId().equals(e.getEmployeeId()) + && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))) + .findFirst(); map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, optional.isPresent() ? optional.get().getResultValue() : ""); }); @@ -1048,7 +1088,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return listMaps; } // 鎵鏈変釜绋庢墸缂翠箟鍔′汉 -// Map taxAgentMap = SalaryEntityUtil.convert2Map(getTaxAgentService(user).listAll(), TaxAgentPO::getId, TaxAgentPO::getName); + Map taxAgentMap = SalaryEntityUtil.convert2Map(getTaxAgentService(user).listAll(), TaxAgentPO::getId, TaxAgentPO::getName); // 鎸変汉鍛樺垎缁勬牳绠楁暟鎹 // Map> relationSalaryAcctEmployeeMap = SalaryEntityUtil.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getEmployeeId); Map salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployees, salaryAcctEmployee -> salaryAcctEmployee.getEmployeeId() + "-" + salaryAcctEmployee.getTaxAgentId()); @@ -1070,42 +1110,45 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Map finalEmpSubComMap = empComMap; boolean finalIsOrigin = isOrigin; list.forEach(e -> { + + SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.getOrDefault(e.getEmployeeId() + "-" + e.getTaxAgentId(), new SalaryAcctEmployeePO()); + DataCollectionEmployee hrmDepartmentComInfo = finalEmpSubComMap.getOrDefault(e.getEmployeeId(), new DataCollectionEmployee()); Map map = new LinkedHashMap<>(); - map.put("id", e.getId() + ""); - DataCollectionEmployee hrmDepartmentComInfo = finalEmpSubComMap.get(e.getEmployeeId()); - if (hrmDepartmentComInfo != null) { - map.put("subCompanyName", hrmDepartmentComInfo.getSubcompanyName()); - } else { - map.put("subCompanyName", ""); - } - if (hrmDepartmentComInfo != null) { - map.put("department", e.getDepartment()); - } - map.put("employeeId", e.getEmployeeId() + ""); - map.put("username", e.getUsername()); + map.put("id", e.getId()); + map.put("employeeId", e.getEmployeeId()); + map.put("taxAgentName", taxAgentMap.getOrDefault(salaryAcctEmployee.getTaxAgentId(), "")); + map.put("taxAgentId", salaryAcctEmployee.getTaxAgentId()); + map.put("username", hrmDepartmentComInfo.getUsername()); + + map.put("departmentName", salaryAcctEmployee.getDepartmentName()); + map.put("departmentId", salaryAcctEmployee.getDepartmentId()); + + map.put("subcompanyName", salaryAcctEmployee.getSubcompanyName()); + map.put("subcompanyId", salaryAcctEmployee.getSubcompanyId()); + map.put("jobtitleName", salaryAcctEmployee.getJobtitleName()); + map.put("jobtitleId", salaryAcctEmployee.getJobtitleId()); + map.put("companystartdate", hrmDepartmentComInfo.getCompanystartdate()); map.put("mobile", e.getMobile()); - map.put("jobNum", e.getJobNum()); - map.put("email", e.getEmail()); + map.put("dissmissdate", hrmDepartmentComInfo.getDismissdate()); + map.put("status", salaryAcctEmployee.getStatus()); + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(salaryAcctEmployee.getStatus(), 1))); + map.put("workcode", hrmDepartmentComInfo.getWorkcode()); + map.put("sex", "0".equals(hrmDepartmentComInfo.getSex()) ? "鐢" : "濂"); + map.put("idNo", hrmDepartmentComInfo.getIdNo()); + map.put("email", hrmDepartmentComInfo.getEmail()); + map.put("telephone", hrmDepartmentComInfo.getTelephone()); + map.put("jobcall", hrmDepartmentComInfo.getJobcall()); + map.put("jobcallId", hrmDepartmentComInfo.getJobcallId()); + map.put("birthday", hrmDepartmentComInfo.getBirthday()); + + map.put("accountType", hrmDepartmentComInfo.getAccountType()); + map.put("accountTypeName", hrmDepartmentComInfo.getAccountTypeName()); + // map.put("employeeType", SalarySendEmployeeTypeEnum.getNameByValue(e.getEmployeeType())); // 鍗曚釜浜虹殑鏍哥畻鏁版嵁 List resultValues = Lists.newArrayList(); - // 涓◣鎵g即涔夊姟浜 -// if (incomeCategorys.size() > 1) { -// List acctEmployees = relationSalaryAcctEmployeeMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()); -// for (SalaryAcctEmployeePO salaryAcctEmployee : acctEmployees) { -// if (singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { -// resultValues.add(singleEmpAcctMap.get(salaryAcctEmployee.getId())); -// } -// } -// } else { -// SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(e.getEmployeeId() + "-" + e.getTaxAgent()); -// if (salaryAcctEmployee != null && singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { -// resultValues.add(singleEmpAcctMap.get(salaryAcctEmployee.getId())); -// } -// } - SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(e.getEmployeeId() + "-" + e.getTaxAgentId()); - if (salaryAcctEmployee != null && singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { + if (singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { resultValues.addAll(singleEmpAcctMap.get(salaryAcctEmployee.getId())); } // 钖祫椤圭洰 @@ -1632,13 +1675,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService mapper.batchHandleSalaryAcctTypeHistory(); } -// -// @BatchExportHandler("exportSalarySendDetail") -// public void salarySendDetailExportHandler() { -// BatchCallbackMessage message = BatchExportContext.getBatchCallbackMessage(); -// System.out.println("鎺ュ彈鍒板鍑虹殑缁撴灉" + JSONObject.toJSONString(message)); -// } - @Override public Map sumRow(SalarySendInfoQueryParam param) { @@ -1830,7 +1866,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (CollectionUtils.isEmpty(salaryTemplates)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "娌℃湁榛樿妯℃澘锛屾棤娉曞彂閫")); } - SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(salarySendPO, taxAgentPO.getName(), salaryTemplates.get(0)); + SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(salarySendPO, salaryTemplates.get(0)); SalaryTemplatePO salaryTemplate = salaryBillSendDTO.getSalaryTemplate(); if (salaryTemplate == null) { @@ -1840,7 +1876,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 鍒ゆ柇鏄惁鏄ˉ鍙 boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType()); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(recipient).build()); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()) + .taxAgentId(salarySendInfo.getTaxAgentId()) + .employeeId(recipient) + .build(); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(build); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("钖祫鏍哥畻缁撴灉涓嶅瓨鍦紒"); } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 3a2d3ebec..bd762cc8d 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; 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; @@ -20,19 +21,19 @@ import com.engine.salary.entity.salarysob.config.SalarySobConfig; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.*; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; -import com.engine.salary.entity.taxagent.param.TaxAgentRangeQueryParam; -import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; -import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.taxagent.TaxAgentExtRangeMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.UploadConfigResponse; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.sys.service.SalarySysConfService; @@ -48,7 +49,6 @@ import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; @@ -117,6 +117,11 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return MapperProxyFactory.getProxy(TaxAgentExtRangeMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + + private SalarySobExtRangeService getSalarySobExtRangeService(User user) { return ServiceUtil.getService(SalarySobExtRangeServiceImpl.class, user); } @@ -163,6 +168,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); } @@ -182,15 +191,17 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public SalarySobPO getById(Long id) { - return salarySobMapper.getById(id); + handleHistory(); + return getSalarySobMapper().getById(id); } + @Override public List listByIds(Collection ids) { if (CollectionUtils.isEmpty(ids)) { return Collections.emptyList(); } - return salarySobMapper.listSome(SalarySobPO.builder().ids(ids).build()); + return getSalarySobMapper().listSome(SalarySobPO.builder().ids(ids).build()); } @Override @@ -208,13 +219,13 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return Collections.emptyList(); } List salarySobPOS = salarySobMapper.listByParam(SalarySobPO.builder().name(nameLike).build()); - return filterByAuthority(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override public List listByDisable(Integer disable) { List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().disable(disable).build()); - return filterByAuthority(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override @@ -223,28 +234,37 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } @Override - public List listAllByAuth() { - long uid = user.getUID(); - boolean isChief = getTaxAgentService(user).isChief(uid); - if (isChief) { - // 钖叕鎬荤鐞嗗憳鑳界湅鍒版墍鏈夋暟鎹 - return listAll(); + public List listAuth(SalarySobQueryParam param) { + // 寮鍚垎鏉冨悗闇瑕佽繃婊よ柂璧勮处濂 + String name = param.getName(); + // 鏌ヨ鎵鏈夌殑钖祫璐﹀ + SalarySobPO build = SalarySobPO.builder().build(); + if (StringUtils.isNotBlank(name)) { + build.setName(name); } - Collection canManageTaxAgentList = getTaxAgentService(user).listAllTaxAgentsAsAdmin(uid); - List taxAgentIds = canManageTaxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - List salarySobPOS = listByTaxAgentIds(taxAgentIds); - return salarySobPOS; + if (param.getTaxAgentId() != null) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(param.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + } + + if(CollectionUtil.isNotEmpty(param.getTaxAgentIds())){ + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentIds(param.getTaxAgentIds()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + } + + List list = getSalarySobMapper().listSome(build); + return getAuthService(user).auth(list, param.getFilterType(), SalarySobPO.class); } @Override public List listByAdmin() { List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().build()); - return filterByAdmin(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.QUERY_DATA, SalarySobPO.class); } @Override public List listByTaxAgentId(Long taxAgentId) { - return salarySobMapper.listSome(SalarySobPO.builder().disable(NumberUtils.INTEGER_ZERO).taxAgentId(taxAgentId).build()); + return getSalarySobMapper().listByTaxAgentId(taxAgentId); } @Override @@ -254,14 +274,6 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public PageInfo listPageByParam(SalarySobListQueryParam queryParam) { - long employeeId = user.getUID(); - // 鍒嗛〉鍙傛暟 - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); - // 鍒ゆ柇鏄惁鏄滄荤鐞嗗憳鈥 - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 鎬荤鐞嗗憳鎷ユ湁鍏ㄩ儴鏉冮檺 // 寮鍚垎鏉冨悗闇瑕佽繃婊よ柂璧勮处濂 String name = queryParam.getName(); // 鏌ヨ鎵鏈夌殑钖祫璐﹀ @@ -270,61 +282,34 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { build.setName(name); } if (queryParam.getTaxAgentId() != null) { - build.setTaxAgentId(queryParam.getTaxAgentId()); + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(queryParam.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - List salarySobPOS = salarySobMapper.listSome(build); - // 鏍规嵁鏉冮檺杩囨护 - List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); - if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { - return page; - } - List subSalarySobs = SalaryPageUtil.subList((int) page.getPageNum(), (int) page.getPageSize(), salarySobsFilterByAuthority); - page.setTotal(salarySobsFilterByAuthority.size()); - page.setList(subSalarySobs); - return page; - } else { - List salarySobPOS = salarySobMapper.listSome(build); - return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salarySobPOS, SalarySobPO.class); - } + List list = getSalarySobMapper().listSome(build); + + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); + + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySobPO.class); } @Override public List listByParam(SalarySobListQueryParam queryParam) { - long employeeId = user.getUID(); - // 鍒ゆ柇鏄惁鏄滄荤鐞嗗憳鈥 - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 鎬荤鐞嗗憳鎷ユ湁鍏ㄩ儴鏉冮檺 - // 寮鍚垎鏉冨悗闇瑕佽繃婊よ柂璧勮处濂 + String name = queryParam.getName(); // 鏌ヨ鎵鏈夌殑钖祫璐﹀ SalarySobPO build = SalarySobPO.builder().build(); if (StringUtils.isNotBlank(name)) { build.setName(name); } - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(employeeId); - //闈炵鐞嗗憳 - if (!adminEnable) { - return new ArrayList<>(); - } - - List salarySobPOS = salarySobMapper.listSome(build); - - // 鏍规嵁鏉冮檺杩囨护 - List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); - if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { - return new ArrayList<>(); - } - return salarySobsFilterByAuthority; - - } else { - return salarySobMapper.listSome(build); + if (queryParam.getTaxAgentId() != null) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(queryParam.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } + + List list = salarySobMapper.listSome(build); + + return getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override @@ -350,12 +335,35 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { loggerContext.setNewValues(salarySobPO); SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); + //淇濆瓨涓◣鎵g即涔夊姟浜鸿仈绯 + saveSobTaxLink(saveParam.getTaxAgentIds(), salarySobPO); + // 鏂板缓钖祫璐﹀鏃讹紝淇濆瓨榛樿鐨勫憳宸ヤ俊鎭瓧娈 + saveDefaultEmpField(salarySobPO); + // 鏂板缓钖祫璐﹀鏃讹紝淇濆瓨榛樿鐨勮柂璧勯」鐩 + saveDefaultItem(salarySobPO); // 鏂板缓钖祫璐﹀鏃讹紝淇濆瓨榛樿鐨勫叧鑱斾汉鍛樿寖鍥村強浠庤寖鍥翠腑鎺掗櫎 saveDefaultEmployeeRange(salarySobPO); // 杩斿洖钖祫璐﹀鐨勪富閿甶d return salarySobPO.getId(); } + private void saveSobTaxLink(List taxAgentIds, SalarySobPO salarySobPO) { + getSobTaxLinkMapper().deleteBySobId(salarySobPO.getId()); + for (Long taxAgentId : taxAgentIds) { + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(taxAgentId) + .sobId(salarySobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + } + } + /** * 鏂板缓钖祫璐﹀鏃讹紝淇濆瓨榛樿鐨勫憳宸ヤ俊鎭瓧娈 @@ -446,31 +454,33 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @date 2022/10/9 15:30 */ public void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { - // 鑾峰彇浜哄憳鑼冨洿鍒楄〃 - TaxAgentRangeQueryParam queryParam = TaxAgentRangeQueryParam.builder().taxAgentId(salarySobPO.getTaxAgentId()).build(); - queryParam.setCurrent(1); - queryParam.setPageSize(100000); - List includeList = (List) getTaxAgentManageRangeService(user).listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ONE).getList(); - includeList.stream().forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); - }); - // 鑾峰彇浠庤寖鍥翠腑鎺掗櫎 - List excludeList = (List) getTaxAgentManageRangeService(user).listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ZERO).getList(); - excludeList.stream().forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); - }); - // 灏員axAgentManageRangeListDTO杞崲涓篠alarySobRangePO - List rangeList = convert2SalarySobRangePO(salarySobPO.getId(), includeList, excludeList); - // 淇濆瓨SalarySobRangePO - if (CollectionUtils.isNotEmpty(rangeList)) { - salarySobRangeBiz.batchInsert(rangeList); - } + Long sobId = salarySobPO.getId(); + salarySobPO = getById(sobId); - //闈炵郴缁熶汉鍛 - List taxAgentExtRangePOS = getTaxAgentExtRangeMapper().listSome(TaxAgentExtRangePO.builder().taxAgentId(salarySobPO.getTaxAgentId()).build()); - taxAgentExtRangePOS.forEach(po -> { - SalarySobRangeExtSaveParam build = SalarySobRangeExtSaveParam.builder().salarySobId(salarySobPO.getId()).targetIds(Collections.singletonList(po.getTargetId())).targetType(1L).build(); - getSalarySobExtRangeService(user).saveExtRange(build); + salarySobPO.getTaxAgentIds().forEach(taxAgentId -> { + // 鑾峰彇浜哄憳鑼冨洿鍒楄〃 + List includeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ONE); + includeList.forEach(item -> { + item.setEmployeeStatus(parseJson2ValueStr(item.getEmployeeStatus())); + }); + // 鑾峰彇浠庤寖鍥翠腑鎺掗櫎 + List excludeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ZERO); + excludeList.forEach(item -> { + item.setEmployeeStatus(parseJson2ValueStr(item.getEmployeeStatus())); + }); + // 灏員axAgentManageRangeListDTO杞崲涓篠alarySobRangePO + List rangeList = convert2SalarySobRangePO(sobId, includeList, excludeList); + // 淇濆瓨SalarySobRangePO + if (CollectionUtils.isNotEmpty(rangeList)) { + salarySobRangeBiz.batchInsert(rangeList); + } + + //闈炵郴缁熶汉鍛 + List taxAgentExtRangePOS = getTaxAgentExtRangeMapper().listSome(TaxAgentExtRangePO.builder().taxAgentId(taxAgentId).build()); + taxAgentExtRangePOS.forEach(po -> { + SalarySobRangeExtSaveParam build = SalarySobRangeExtSaveParam.builder().salarySobId(sobId).targetIds(Collections.singletonList(po.getTargetId())).targetType(1L).build(); + getSalarySobExtRangeService(user).saveExtRange(build); + }); }); @@ -483,14 +493,14 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @author Harryxzy * @date 2022/10/9 16:06 */ - private List convert2SalarySobRangePO(Long salarySobID, List includeList, List excludeList) { + private List convert2SalarySobRangePO(Long salarySobID, List includeList, List excludeList) { Date now = new Date(); ArrayList result = new ArrayList(); // 鍏宠仈浜哄憳鑼冨洿 includeList.stream().forEach(item -> { SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder() .salarySobId(salarySobID) - .targetType(item.getTargetType().getValue()) + .targetType(item.getTargetType()) .targetId(item.getTargetId()) .target(item.getTarget()) .employeeStatuses(item.getEmployeeStatus()) @@ -507,7 +517,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { excludeList.stream().forEach(item -> { SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder() .salarySobId(salarySobID) - .targetType(item.getTargetType().getValue()) + .targetType(item.getTargetType()) .targetId(item.getTargetId()) .target(item.getTarget()) .employeeStatuses(item.getEmployeeStatus()) @@ -525,25 +535,12 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { /** - * @return String - * @description 灏嗘灇涓剧殑defaultLabel杞崲涓簐alue - * @author Harryxzy - * @date 2022/10/9 16:56 + * ["0","1","2","3","4","5","6"] -> 0,1,2,3,4,5,6 + * @param employeeStatus + * @return */ - private String parseEnum2ValueStr(String employeeStatus) { - String[] split = employeeStatus.split(","); - StringBuilder sb = new StringBuilder(); - for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) { - for (int i = 0; i < split.length; i++) { - if (statusEnum.getDefaultLabel().equals(split[i])) { - sb.append(statusEnum.getValue()); - if (i + 1 != split.length) { - sb.append(","); - } - } - } - } - return sb.toString(); + private String parseJson2ValueStr(String employeeStatus) { + return employeeStatus.replace("[","").replace("]","").replaceAll("\"", ""); } @@ -568,7 +565,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { BeanUtils.copyProperties(salarySobPO, newSalarySobPO); newSalarySobPO.setId(saveParam.getId()) .setName(saveParam.getName()) - .setTaxAgentId(saveParam.getTaxAgentId()) + .setTaxAgentId(saveParam.getTaxAgentIds().get(0)) .setIncomeCategory(saveParam.getTaxableItems()) .setSalaryCycleType(saveParam.getSalaryCycleType()) .setSalaryCycleFromDay(saveParam.getSalaryCycleFromDay()) @@ -579,6 +576,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { .setDescription(saveParam.getDescription()) .setUpdateTime(new Date()); salarySobMapper.updateById(newSalarySobPO); + + //淇濆瓨涓◣鎵g即涔夊姟浜鸿仈绯 + saveSobTaxLink(saveParam.getTaxAgentIds(), salarySobPO); + // 璁板綍鏃ュ織 SalarySobPO salarySobPO4log = getSalarySobMapper().getById(newSalarySobPO.getId()); LoggerContext loggerContext = new LoggerContext<>(); @@ -706,15 +707,6 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "钖祫璐﹀鍚嶇О宸插瓨鍦")); } - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (openDevolution) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - if (!taxAgentIds.contains(duplicateParam.getTaxAgentId())) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "璇ユ墸缂翠箟鍔′汉涓嶅湪鏉冮檺鑼冨洿鍐咃紒")); - } - } - // 鏌ヨ钖祫璐﹀鐨勫憳宸ヤ俊鎭瓧娈 List salarySobEmpFieldPOS = salarySobEmpFieldService.listSome(SalarySobEmpFieldPO.builder().salarySobId(duplicateParam.getId()).build()); // 鏌ヨ钖祫璐﹀鐨勮柂璧勯」鐩壇鏈 @@ -734,7 +726,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { // 澶嶅埗钖祫璐﹀鐨勫熀纭璁剧疆 SalarySobPO newSalarySob = SalarySobPO.builder() .name(duplicateParam.getName()) - .taxAgentId(duplicateParam.getTaxAgentId()) + .taxAgentId(duplicateParam.getTaxAgentIds().get(0)) .incomeCategory(salarySobPO.getIncomeCategory()) .salaryCycleType(salarySobPO.getSalaryCycleType()) .salaryCycleFromDay(salarySobPO.getSalaryCycleFromDay()) @@ -750,6 +742,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { .deleteType(NumberUtils.INTEGER_ZERO) .build(); salarySobMapper.insert(newSalarySob); + + + saveSobTaxLink(duplicateParam.getTaxAgentIds(), newSalarySob); // 澶嶅埗 SalarySobDuplicateBO salarySobDuplicateBO = new SalarySobDuplicateBO(newSalarySob, salarySobEmpFieldPOS, salarySobItemPOS, salarySobItemGroupPOS, salarySobAdjustRulePOS, salarySobCheckRulePOS, salarySobBackItemPOS); @@ -851,39 +846,11 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } @Override - public List filterByAuthority(List salarySobPOS) { - long employeeId = user.getUID(); - // 鍒ゆ柇鏄惁鏄滄荤鐞嗗憳鈥 - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 寮鍚垎鏉冨悗 - // 鎬荤鐞嗗憳閮借兘鐪嬭 - // 绠$悊鍛樿嚜宸辩鐞嗙殑涓◣涓嬬殑 - if (!openDevolution || isChief) { - return salarySobPOS; - } - // 鏌ヨ鎵鏈夌殑涓◣鎵g即涔夊姟浜 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 鏌ヨ涓◣鎵g即涔夊姟浜虹殑绠$悊鍛 - List taxAgentAdminPOS = getTaxAgentAdminService(user).listByTaxAgentIds(allTaxAgentIds); - Map> adminMap = SalaryEntityUtil.group2Map(taxAgentAdminPOS, TaxAgentAdminPO::getEmployeeId, TaxAgentAdminPO::getTaxAgentId); - return salarySobPOS.stream().filter(salarySobPO -> { - Set taxAgentIds = adminMap.get(employeeId); - if (CollectionUtils.isEmpty(taxAgentIds)) { - return false; - } - return taxAgentIds.contains(salarySobPO.getTaxAgentId()); - }).collect(Collectors.toList()); - } - - @Override - public List listByTaxAgentIds(Collection taxAgentIds) { + public List listByTaxAgentIds(List taxAgentIds) { if (CollectionUtils.isEmpty(taxAgentIds)) { return new ArrayList<>(); } - return getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentIds(taxAgentIds).build()); + return getSalarySobMapper().listByTaxAgentIds(taxAgentIds); } @Override @@ -1068,29 +1035,41 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return results; } - - public List filterByAdmin(List salarySobPOS) { - long employeeId = user.getUID(); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 寮鍚垎鏉冨悗 - // 绠$悊鍛樿嚜宸辩鐞嗙殑涓◣涓嬬殑 - if (!openDevolution) { - return salarySobPOS; + @Override + public List list(SalarySobQueryParam param) { + SalarySobPO sobPO = SalarySobPO.builder().build(); + if (StrUtil.isNotBlank(param.getName())) { + sobPO.setName(param.getName()); } - // 鏌ヨ鎵鏈夌殑涓◣鎵g即涔夊姟浜 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 鏌ヨ涓◣鎵g即涔夊姟浜虹殑绠$悊鍛 - List taxAgentAdminPOS = getTaxAgentAdminService(user).listByTaxAgentIds(allTaxAgentIds); - Map> adminMap = SalaryEntityUtil.group2Map(taxAgentAdminPOS, TaxAgentAdminPO::getEmployeeId, TaxAgentAdminPO::getTaxAgentId); - return salarySobPOS.stream().filter(salarySobPO -> { - Set taxAgentIds = adminMap.get(employeeId); - if (CollectionUtils.isEmpty(taxAgentIds)) { - return false; - } - return taxAgentIds.contains(salarySobPO.getTaxAgentId()); - }).collect(Collectors.toList()); + + if (param.getTaxAgentId() != null) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(param.getTaxAgentId()).build()); + sobPO.setIds(SalaryEntityUtil.properties(sobTaxLinkPOS, SobTaxLinkPO::getSobId)); + } + return getSalarySobMapper().listSome(sobPO); } + @Override + public void handleHistory() { + + int count = getSobTaxLinkMapper().count(); + if (count > 0) { + return; + } + + List salarySobPOS = getSalarySobMapper().listAll(); + salarySobPOS.forEach(sobPO -> { + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(sobPO.getTaxAgentId()) + .sobId(sobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + }); + } } diff --git a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java index f6f7e8b18..aaa2dfcde 100644 --- a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java @@ -27,11 +27,14 @@ import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarybill.SalaryTemplateWhetherEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper; import com.engine.salary.report.entity.po.SalaryStatisticsReportPO; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; @@ -86,6 +89,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate return MapperProxyFactory.getProxy(SalarySobEmpFieldMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SalaryTemplatePO getById(Long id) { return mapper.getById(id); @@ -492,30 +499,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate @Override public PageInfo listPage(SalaryTemplateQueryParam queryParam) { - List salaryTemplateDTOList = Collections.emptyList(); - // 鍒嗘潈 - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salarySobIds)) { - // 鏌ヨ - salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder() - .salarySobId(queryParam.getSalarySobId()) - .name(queryParam.getName()) - .salarySobIds(salarySobIds).build()); - } else { - return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); - } - } else { - // 鏌ヨ - salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder().salarySobId(queryParam.getSalarySobId()).name(queryParam.getName()).build()); - } + List salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder().salarySobId(queryParam.getSalarySobId()).name(queryParam.getName()).build()); + salaryTemplateDTOList = getAuthService(user).auth(salaryTemplateDTOList, AuthFilterTypeEnum.DATA_OPT, SalaryTemplateListDTO.class); - // 鍒嗛〉鍙傛暟 - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); - return page; + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); } @Override diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 3a2395b01..0ff8a7fe6 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -14,8 +14,10 @@ import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.common.SharedTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.setting.PageLinkMapper; @@ -291,7 +293,9 @@ public class SettingServiceImpl extends Service implements SettingService { Long templateId = link.getTemplateId(); //鏉冮檺鎺у埗 - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService().listAuth(taxAgentQueryParam); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); Boolean chief = getTaxAgentService().isChief((long) user.getUID()); pos = pos.stream().filter(po -> { @@ -400,7 +404,10 @@ public class SettingServiceImpl extends Service implements SettingService { //鏉冮檺鎺у埗 List agentPOList = getTaxAgentService().listAll(); Map idNameMap = SalaryEntityUtil.convert2Map(agentPOList, TaxAgentPO::getId, TaxAgentPO::getName); - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + //鏉冮檺鎺у埗 + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService().listAuth(taxAgentQueryParam); Boolean chief = getTaxAgentService().isChief((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); List templateDTOS = pos.stream() diff --git a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java index 052dcbede..5ea3b87cd 100644 --- a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java @@ -20,9 +20,11 @@ import com.engine.salary.entity.datacollection.param.SpecialAddDeductionRecordDe import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.SpecialAddDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; @@ -30,6 +32,8 @@ import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SpecialAddDeductionService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -93,6 +97,10 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SpecialAddDeductionPO getById(Long id) { return getSpecialAddDeductionBiz().getById(id); @@ -104,14 +112,9 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - putQueryRange(queryParam); - } List list = getSpecialAddDeductionMapper().listByParam(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SpecialAddDeductionListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SpecialAddDeductionListDTO.class); encryptUtil.decryptList(page.getList(), SpecialAddDeductionListDTO.class); @@ -120,12 +123,6 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd @Override public PageInfo recordListPage(SpecialAddDeductionQueryParam queryParam) { - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - putQueryRange(queryParam); - } List list = getSpecialAddDeductionMapper().listDtoByParam(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SpecialAddDeductionRecordDTO.class); @@ -174,8 +171,6 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd public Map importData(SpecialAddDeductionImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - long currentEmployeeId = user.getUID(); Map apidatas = new HashMap(); SpecialAddDeductionBiz SpecialAddDeductionBiz = new SpecialAddDeductionBiz(); @@ -205,11 +200,10 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //浜哄憳淇℃伅 List employees = getSalaryEmployeeService(user).listEmployee(); - // 鑾峰彇鎵鏈変釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - // 鏌ヨ宸叉湁鏁版嵁 - List list = getSpecialAddDeductionBiz() - .listByTaxAgentIds(null); + // 鑾峰彇涓◣鎵g即涔夊姟浜 + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 閿欒excel鍐呭 List errorData = new ArrayList<>(); @@ -293,16 +287,16 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) { + if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getId().equals(Long.valueOf(taxAgentId))) { //涓◣鎵g即涔夊姟浜轰笌瀵煎叆鏃堕夋嫨鐨勪笉涓鑷 Map errorMessageMap = new HashMap<>(); errorMessageMap.put("message", rowIndex + "涓◣鎵g即涔夊姟浜轰笌瀵煎叆鏃堕夋嫨鐨勪笉涓鑷"); errorData.add(errorMessageMap); errorSum += 1; } else { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getId()); } } else { //涓◣鎵g即涔夊姟浜轰笉瀛樺湪 @@ -704,11 +698,8 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - - if (getTaxAgentService(user).isOpenDevolution()) { - putQueryRange(param); - } List list = getSpecialAddDeductionBiz().listByParam(param); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, SpecialAddDeductionListDTO.class); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { diff --git a/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java index 72838fc10..171bd953a 100644 --- a/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java @@ -13,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 涓◣鎵g即涔夊姟浜虹鐞嗗憳 @@ -79,4 +80,9 @@ public class TaxAgentAdminServiceImpl extends Service implements TaxAgentAdminSe public List listByEmployeeId(Long currentEmployeeId) { return getTaxAgentAdminMapper().listSome(TaxAgentAdminPO.builder().employeeId(currentEmployeeId).build()); } + + @Override + public List getAdminTaxAgentIds(Long currentEmployeeId) { + return listByEmployeeId(currentEmployeeId).stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); + } } diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index a466622b5..8c00eb402 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -272,7 +272,8 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @param includeType * @return */ - private List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType) { + @Override + public List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType) { return getTaxAgentManageRangeMapper().listSome(TaxAgentManageRangePO.builder().taxAgentId(taxAgentId).rangeType(TaxAgentRangeTypeEnum.TAXAGENT.getValue()).includeType(includeType).build()); } diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 89c6ea3c7..43b92a85a 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -14,7 +14,7 @@ import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salarysob.config.SalarySobConfig; -import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.salarysob.po.SobTaxLinkPO; import com.engine.salary.entity.siaccount.param.InsuranceAccountBatchParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; @@ -29,6 +29,7 @@ import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentSaveParam; import com.engine.salary.entity.taxagent.po.*; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; @@ -39,10 +40,13 @@ import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.datacollection.OtherDeductionMapper; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.UploadConfigResponse; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -125,6 +129,10 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return MapperProxyFactory.getProxy(SalarySobMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + private TaxAgentMapper getTaxAgentMapper() { return MapperProxyFactory.getProxy(TaxAgentMapper.class); } @@ -141,6 +149,10 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + // private PaymentAgencyMapper paymentAgencyMapper; @@ -233,6 +245,11 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return hasRight; } + @Override + public List getAdminTaxAgentIds(Long currentEmployeeId) { + return getTaxAgentAdminService(user).getAdminTaxAgentIds(currentEmployeeId); + } + @Override public Boolean isDefaultOpen(Long currentEmployeeId) { return getTaxAgentBaseService(user).isOpenDevolution(); @@ -248,7 +265,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override public PageInfo listPage(TaxAgentQueryParam queryParam) { - List taxAgentPOS = getTaxAgentMapper().listBySome(queryParam); + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List taxAgentPOS = listAuth(queryParam); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxAgentPOS, TaxAgentPO.class); } @@ -269,6 +287,13 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return getTaxAgentMapper().listAll(); } + @Override + public List listAuth(TaxAgentQueryParam queryParam) { + List taxAgents = getTaxAgentMapper().listBySome(queryParam); + AuthFilterTypeEnum filterType = queryParam.getFilterType(); + return getAuthService(user).auth(taxAgents, filterType, TaxAgentPO.class); + } + @Override public TaxAgentPO getById(Long id) { return getTaxAgentMapper().getById(id); @@ -281,7 +306,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } @Override - public Collection listAllTaxAgents(Long employeeId) { + public List listAllTaxAgents(Long employeeId) { List taxAgents = getTaxAgentMapper().listAll(); return handleForDevolution(taxAgents, employeeId, true); } @@ -563,8 +588,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } //璐﹀ - List salarySobPOS = getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentId(id).build()); - if (CollectionUtils.isNotEmpty(salarySobPOS)) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(id).build()); + if (CollectionUtils.isNotEmpty(sobTaxLinkPOS)) { throw new SalaryRunTimeException("瀛樺湪璐﹀寮曠敤"); } @@ -816,7 +841,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } @Override - public List parseConfig(List configs) { + public List parseConfig(List configs) { List results = new ArrayList<>(); List taxAgentPOS = listAll(); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 7ed85fdd9..ac082919d 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; @@ -29,6 +30,8 @@ import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; @@ -100,6 +103,10 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SalarySysConfService getSalarySysConfService(User user) { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } @@ -148,8 +155,6 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration @Override public PageInfo listPageByParam(TaxDeclarationListQueryParam queryParam) { - long currentEmployeeId = user.getUID(); - // 鍒嗛〉鍙傛暟 TaxDeclarationPO po = TaxDeclarationPO.builder().build(); LocalDateRange localDateRange = new LocalDateRange(); @@ -161,21 +166,11 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration } po.setSalaryMonths(localDateRange); - - // 鍒嗘潈 - Boolean openDevolution = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (openDevolution) { - // 鏌ヨ璐熻矗绠$悊鐨勪釜绋庢墸缂翠箟鍔′汉 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - if (CollectionUtils.isEmpty(taxAgentPOS)) { - return new PageInfo<>(new ArrayList<>()); - } - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - po.setTaxAgentIds(taxAgentIds); - } - // 鏌ヨ涓◣鐢虫姤琛 List taxDeclarationPOS = getTaxDeclarationMapper().listSome(po); + + taxDeclarationPOS = getAuthService(user).auth(taxDeclarationPOS, AuthFilterTypeEnum.DATA_OPT, TaxDeclarationPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxDeclarationPOS, TaxDeclarationPO.class); @@ -231,8 +226,6 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId, TaxAgentPO::getName); List salaryAcctRecordPOS; Date taxCycle; - List salaryAcctResultPOS; - Set salaryAcctRecordIds; //鏍规嵁绋庢鎵灞炴湡鐢虫姤 if (isTaxDeclarationByTaxCycle) { taxCycle = saveParam.getTaxCycle(); @@ -250,28 +243,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration } // 鏌ヨ钖祫鎵灞炴湀鐨勮柂璧勬牳绠楄褰 salaryAcctRecordPOS = listByTaxCycle(SalaryAcctRecordPO.builder().taxCycle(taxCycle).build()); - // 鏃犺柂璧勬牳绠楄褰曪紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98874, "{0}鏃犵敵鎶ユ暟鎹").replace("{0}", SalaryDateUtil.getFormatYearMonth(taxCycle))); - } - // 鏌ヨ钖祫鏍哥畻缁撴灉 - salaryAcctResultPOS = getSalaryAcctResultService(user) - .listBySalaryAcctRecordIdsAndTaxAgentIds(SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId), taxAgentIds); - // 鏃犺柂璧勬牳绠楃粨鏋滐紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - if (CollectionUtils.isEmpty(salaryAcctResultPOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}鏃犲彲鐢虫姤鏁版嵁") - .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); - } - - salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId); - salaryAcctRecordPOS = salaryAcctRecordPOS.stream().filter(salaryAcctRecordPO -> salaryAcctRecordIds.contains(salaryAcctRecordPO.getId())).collect(Collectors.toList()); - // 濡傛灉瀛樺湪鏈綊妗g殑锛屼篃涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())); - if (notArchived) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}鏈夋湭褰掓。鏁版嵁锛岃鍏ㄩ儴褰掓。鍚庡啀鐢虫姤") - .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); - } } else { //鏍规嵁钖祫鎵灞炴湀鐢虫姤 // 钖祫鎵灞炴湀鐨勬棩鏈熻寖鍥 @@ -290,28 +262,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration } // 鏌ヨ钖祫鎵灞炴湀鐨勮柂璧勬牳绠楄褰 salaryAcctRecordPOS = listBySalaryMonth(SalaryAcctRecordPO.builder().salaryMonths(salaryMonthDateRange).build()); - // 鏃犺柂璧勬牳绠楄褰曪紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98874, "{0}鏃犵敵鎶ユ暟鎹").replace("{0}", saveParam.getSalaryMonth().toString())); - } - // 鏌ヨ钖祫鏍哥畻缁撴灉 - salaryAcctResultPOS = getSalaryAcctResultService(user) - .listBySalaryAcctRecordIdsAndTaxAgentIds(SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId), taxAgentIds); - // 鏃犺柂璧勬牳绠楃粨鏋滐紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - if (CollectionUtils.isEmpty(salaryAcctResultPOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}鏃犲彲鐢虫姤鏁版嵁") - .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); - } - - salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId); - salaryAcctRecordPOS = salaryAcctRecordPOS.stream().filter(salaryAcctRecordPO -> salaryAcctRecordIds.contains(salaryAcctRecordPO.getId())).collect(Collectors.toList()); - // 濡傛灉瀛樺湪鏈綊妗g殑锛屼篃涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 - boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())); - if (notArchived) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}鏈夋湭褰掓。鏁版嵁锛岃鍏ㄩ儴褰掓。鍚庡啀鐢虫姤") - .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); - } // 濡傛灉褰撳墠钖祫鎵灞炴湀涓嬪瓨鍦ㄤ笉鍚岀殑绋庢鎵灞炴湡锛屽睘浜庡紓甯镐笟鍔″満鏅紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 taxCycle = salaryAcctRecordPOS.get(0).getTaxCycle(); boolean differentTaxCycle = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctRecordPO.getTaxCycle().compareTo(taxCycle) != 0); @@ -320,9 +271,39 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); } } + + // 鏃犺柂璧勬牳绠楄褰曪紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 + if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98874, "{0}鏃犵敵鎶ユ暟鎹").replace("{0}", saveParam.getSalaryMonth().toString())); + } + + // 鏌ヨ钖祫鏍哥畻缁撴灉 + List salaryAcctResultPOS = getSalaryAcctResultService(user) + .listBySalaryAcctRecordIdsAndTaxAgentIds(SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId), taxAgentIds); + + // 鏃犺柂璧勬牳绠楃粨鏋滐紝涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 + if (CollectionUtils.isEmpty(salaryAcctResultPOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}鏃犲彲鐢虫姤鏁版嵁") + .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); + } + // 鏌ヨ钖祫璐﹀ Set salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId); List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); + Map salarySobNameMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getId, SalarySobPO::getName); + Set salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId); + salaryAcctRecordPOS = salaryAcctRecordPOS.stream().filter(salaryAcctRecordPO -> salaryAcctRecordIds.contains(salaryAcctRecordPO.getId())).collect(Collectors.toList()); + // 濡傛灉瀛樺湪鏈綊妗g殑锛屼篃涓嶅厑璁哥敓鎴愪釜绋庣敵鎶ヨ〃 + salaryAcctRecordPOS.forEach(salaryAcctRecordPO -> { + if (Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())){ + throw new SalaryRunTimeException( + String.format("%s%s璐﹀鏈夋湭褰掓。鏁版嵁锛岃鍏ㄩ儴褰掓。鍚庡啀鐢虫姤" + ,SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()) + ,salarySobNameMap.getOrDefault(salaryAcctRecordPO.getSalarySobId(),"") + ) + ); + } + }); // 鏌ヨ鎵鏈夎柂璧勯」鐩 List salaryItemPOS = getSalaryItemService(user).listAll(); @@ -377,7 +358,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration @Override public void delete(SalaryAcctRecordPO salaryAcctRecordPO) { SalarySobPO sobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - if (sobPO == null || sobPO.getTaxAgentId() == null) { + if (sobPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "璐﹀淇℃伅寮傚父")); } @@ -386,18 +367,20 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration if (Objects.isNull(taxCycleDateRange)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "鍙傛暟閿欒")); } - List taxDeclarationPOS = listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()), Collections.singleton(sobPO.getTaxAgentId())); + sobPO.getTaxAgentIds().forEach(taxAgentId -> { + List taxDeclarationPOS = listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()), Collections.singleton(taxAgentId)); - Set taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId); - if (CollectionUtils.isNotEmpty(taxDeclarationIds)) { - // 鍒犻櫎涓◣鐢虫姤琛 - getTaxDeclarationMapper().deleteByIds(taxDeclarationIds); - // 鍒犻櫎涓◣鐢虫姤琛ㄨ鎯 - getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds); - } + Set taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId); + if (CollectionUtils.isNotEmpty(taxDeclarationIds)) { + // 鍒犻櫎涓◣鐢虫姤琛 + getTaxDeclarationMapper().deleteByIds(taxDeclarationIds); + // 鍒犻櫎涓◣鐢虫姤琛ㄨ鎯 + getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds); + } - // 鍒犻櫎寰鏈熺疮璁℃儏鍐 - getAddUpSituationService(user).deleteAddUpSituationList(salaryAcctRecordPO.getTaxCycle(), sobPO.getTaxAgentId()); + // 鍒犻櫎寰鏈熺疮璁℃儏鍐 + getAddUpSituationService(user).deleteAddUpSituationList(salaryAcctRecordPO.getTaxCycle(), taxAgentId); + }); } diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 06218ebc9..ce3544cb6 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -17,13 +17,16 @@ import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveInitImportDTO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableArchiveMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -39,7 +42,6 @@ import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.ss.usermodel.Sheet; @@ -86,7 +88,11 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); } private int deleteByIds(List deleteIds) { @@ -104,6 +110,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi */ @Override public PageInfo listPage(VariableArchiveQueryParam queryParam) { + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); List variableArchiveList = list(queryParam); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), variableArchiveList, VariableArchiveListDTO.class); } @@ -111,24 +118,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi @Override public List list(VariableArchiveQueryParam queryParam) { ValidUtil.doValidator(queryParam); - Long employeeId = Long.valueOf(user.getUID()); - // 鍒ゆ柇鏄惁鏄滄荤鐞嗗憳鈥 - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); - List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIds)) { - // 鏃犳潈闄 - return Collections.emptyList(); - } - if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { - taxAgentIds = taxAgentIds.stream().filter(queryParam.getTaxAgentIds()::contains).collect(Collectors.toList()); - } - queryParam.setTaxAgentIds(taxAgentIds); - } - // 娴姩钖叕妗f鍒楄〃 if (Objects.nonNull(queryParam.getSalaryMonth())) { queryParam.setSalaryMonthDate(SalaryDateUtil.dateStrToLocalYearMonth(queryParam.getSalaryMonth())); @@ -136,7 +125,8 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi //鎺掑簭閰嶇疆 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - return listDTO(queryParam); + List list = listDTO(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), VariableArchiveListDTO.class); } public List listDTO(VariableArchiveQueryParam queryParam) { @@ -314,10 +304,11 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi // 2.琛ㄥご List> rows = new ArrayList<>(); rows.add(header); - // 鑾峰彇妗f淇℃伅 - List variableArchiveList = list(param); if (param.isHasData()) { + // 鑾峰彇妗f淇℃伅 + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List variableArchiveList = list(param); List> listMaps = buildVariableArchiveData(variableArchiveList); // 缁勮鏁版嵁 listMaps.forEach(e -> { @@ -461,8 +452,10 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List variableArchiveItemPOS = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds); Map> variableArchiveItemMap = SalaryEntityUtil.group2Map(variableArchiveItemPOS, k -> k.getVariableArchiveId() + "-" + k.getVariableItemId()); - Collection taxAgentList; - taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree((long) user.getUID()); + // 鑾峰彇涓◣鎵g即涔夊姟浜 + TaxAgentQueryParam queryParam = TaxAgentQueryParam.builder().build(); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(queryParam); return VariableArchiveImportHandleParam.builder() @@ -541,6 +534,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List> rows = new ArrayList<>(); rows.add(header.stream().map(WeaTableColumn::getText).collect(Collectors.toList())); // 鑾峰彇妗f淇℃伅 + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List variableArchiveList = list(param); List> listMaps = buildVariableArchiveData(variableArchiveList); // 缁勮鏁版嵁 @@ -587,13 +581,14 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi } @Override - public List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId) { + public List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, List taxAgentIds) { VariableArchiveQueryParam queryParam = VariableArchiveQueryParam.builder() .employeeIds(employeeIds) .salaryMonth(SalaryDateUtil.getFormatYearMonth(salaryMonth)) .salaryMonthDate(SalaryDateUtil.toDate(salaryMonth, 1)) - .taxAgentIds(Collections.singletonList(taxAgentId)) + .taxAgentIds(taxAgentIds) .build(); + queryParam.setFilterType(AuthFilterTypeEnum.NO_AUTH); List variableArchiveListDTO = list(queryParam); return buildVariableArchiveData(variableArchiveListDTO); } diff --git a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java index 7ae749ae3..41d30ea0d 100644 --- a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java @@ -9,7 +9,6 @@ import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryformula.po.FormulaPO; import com.engine.salary.entity.salaryformula.po.FormulaVar; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableItemMapper; @@ -22,14 +21,16 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; import weaver.conn.util.IdGenerator; import weaver.hrm.User; -import java.util.*; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -95,20 +96,6 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ @Override public PageInfo listPage(VariableItemQueryParam queryParam) { List variableItemPOS = listAll(); - Long employeeId = Long.valueOf(user.getUID()); - // 鍒ゆ柇鏄惁鏄滄荤鐞嗗憳鈥 - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 鏄惁寮鍚垎鏉 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); - List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIds)) { - // 鏃犳潈闄 - return new PageInfo<>(); - } - } - if (StringUtils.isNotBlank(queryParam.getItemName())) { variableItemPOS = variableItemPOS.stream().filter(po -> po.getName().contains(queryParam.getItemName())).collect(Collectors.toList()); } @@ -146,7 +133,7 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ .name(saveParam.getName()) .code(IdGenerator.getUUID()) .dataType(saveParam.getDataType()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .deleteType(NumberUtils.INTEGER_ZERO) .createTime(now) .updateTime(now) @@ -241,8 +228,7 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ if (CollectionUtils.containsAny(usingVariableItemIds, itemIds)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "娴姩钖祫妗f涓鍦ㄤ娇鐢ㄨ钖祫椤圭洰锛屼笉鍏佽鍒犻櫎")); } - itemIds.stream().forEach(id -> getVariableItemMapper().delete(VariableItemPO.builder().id(id).build())); - ; + itemIds.forEach(id -> getVariableItemMapper().delete(VariableItemPO.builder().id(id).build())); } @Override diff --git a/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java b/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java index ea16e2022..f4e3df83a 100644 --- a/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java +++ b/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java @@ -1,6 +1,7 @@ package com.engine.salary.timer; import com.engine.common.util.ServiceUtil; +import com.engine.salary.wrapper.AuthWrapper; import com.engine.salary.wrapper.TaxAgentWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StopWatch; @@ -22,6 +23,11 @@ public class SyncTaxAgentEmpJob extends BaseCronJob { return ServiceUtil.getService(TaxAgentWrapper.class, user); } + private AuthWrapper getAuthWrapper(User user) { + return ServiceUtil.getService(AuthWrapper.class, user); + } + + @Override public void execute() { StopWatch stopWatch = new StopWatch(); @@ -37,7 +43,12 @@ public class SyncTaxAgentEmpJob extends BaseCronJob { */ private void start() { try { + User user = new User(); + user.setUid(1); getTaxAgentWrapper(null).syncAllRange(); + + //鍚屾涓氬姟绾 + getAuthWrapper(user).sync(); } catch (Exception e) { log.error("璁″垝浠诲姟銆怱yncTaxAgentEmpJob銆戞墽琛屽紓甯革細" + e); } diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java new file mode 100644 index 000000000..c16e5ab52 --- /dev/null +++ b/src/com/engine/salary/web/AuthController.java @@ -0,0 +1,218 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.auth.dto.*; +import com.engine.salary.entity.auth.param.*; +import com.engine.salary.entity.auth.vo.Permission; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.wrapper.AuthWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.List; + +/** + * 鏉冮檺 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class AuthController { + + private AuthWrapper getAuthWrapper(User user) { + return ServiceUtil.getService(AuthWrapper.class, user); + } + + @POST + @Path("/role/list") + @Produces(MediaType.APPLICATION_JSON) + public String roleList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthRoleListQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::roleList, param); + } + + @GET + @Path("/role/getRole") + @Produces(MediaType.APPLICATION_JSON) + public String getRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::getRole, id); + } + + @POST + @Path("/role/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthRoleSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveRole, param); + } + + @POST + @Path("/role/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteRole, ids); + } + + @POST + @Path("/member/list") + @Produces(MediaType.APPLICATION_JSON) + public String memberList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::memberList, param); + } + + @POST + @Path("/member/detail") + @Produces(MediaType.APPLICATION_JSON) + public String memberDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::memberDetail, param); + } + + @POST + @Path("/member/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::saveMember, param); + } + + @POST + @Path("/member/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteMember, ids); + } + + @POST + @Path("/member/sync") + @Produces(MediaType.APPLICATION_JSON) + public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthSyncParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, param); + } + + + @GET + @Path("/opt/tree") + @Produces(MediaType.APPLICATION_JSON) + public String optTree(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "roleId") Long roleId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::optTree, roleId); + } + + @POST + @Path("/opt/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveOpt(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthOptSaveParam opt) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveOpt, opt); + } + + @POST + @Path("/data/list") + @Produces(MediaType.APPLICATION_JSON) + public String dataList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::dataList, param); + } + + @POST + @Path("/data/detail") + @Produces(MediaType.APPLICATION_JSON) + public String dataDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::dataDetail, param); + } + + @POST + @Path("/data/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List params) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::saveData, params); + } + + @POST + @Path("/data/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteData, ids); + } + + @POST + @Path("/data/sync") + @Produces(MediaType.APPLICATION_JSON) + public String syncData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthSyncParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::syncData, param); + } + + @GET + @Path("/data/auth") + @Produces(MediaType.APPLICATION_JSON) + public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::auth, page); + } + + + /** + * 鏉冮檺淇℃伅 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/permission") + @Produces(MediaType.APPLICATION_JSON) + public String permission(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::permission, page); + } + + + /** + * 鏌ヨ + * + * @param request + * @param response + * @return + */ + @POST + @Path("/tree") + @Produces(MediaType.APPLICATION_JSON) + public String tree(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthTreeQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::tree,param); + } + + + /** + * 鍚屾 + */ + @POST + @Path("/sync") + @Produces(MediaType.APPLICATION_JSON) + public String sync(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::sync); + } + +} diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java new file mode 100644 index 000000000..b36c06ed2 --- /dev/null +++ b/src/com/engine/salary/web/PushController.java @@ -0,0 +1,118 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; +import com.engine.salary.entity.push.param.*; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.wrapper.PushWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 鏁版嵁鎺ㄩ + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public class PushController { + + private PushWrapper getPushWrapper(User user) { + return ServiceUtil.getService(PushWrapper.class, user); + } + + @POST + @Path("/setting/list") + @Produces(MediaType.APPLICATION_JSON) + public String settingList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::settingList, param); + } + + @POST + @Path("/mode/list") + @Produces(MediaType.APPLICATION_JSON) + public String modeList(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::modeList); + } + + @POST + @Path("/setting/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::save, param); + } + + @GET + @Path("/setting/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::delete, id); + } + + @POST + @Path("/item/list") + @Produces(MediaType.APPLICATION_JSON) + public String itemList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::itemList, param); + } + + + @POST + @Path("/item/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::saveItem, param); + } + + @GET + @Path("/item/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::deleteItem, id); + } + + @POST + @Path("/push") + @Produces(MediaType.APPLICATION_JSON) + public String push(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::push, param); + } + + @POST + @Path("/record/list") + @Produces(MediaType.APPLICATION_JSON) + public String recordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody RecordListQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::recordList, param); + } + + @POST + @Path("/record/detail") + @Produces(MediaType.APPLICATION_JSON) + public String recordDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody RecordDetailListQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::recordDetailList, param); + } +} diff --git a/src/com/engine/salary/web/SalaryItemController.java b/src/com/engine/salary/web/SalaryItemController.java index 91fa153ad..115719b2c 100644 --- a/src/com/engine/salary/web/SalaryItemController.java +++ b/src/com/engine/salary/web/SalaryItemController.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO; import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; import com.engine.salary.entity.salaryitem.dto.SysSalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.*; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryI18nUtil; @@ -67,6 +68,14 @@ public class SalaryItemController { return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listPage, searchParam); } + @POST + @Path("/listAuth") + @Produces(MediaType.APPLICATION_JSON) + public String listAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam searchParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listAuth, searchParam); + } + /** * 鍙垹闄ょ殑钖祫椤圭洰鍒楄〃 diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index d8c53e372..a452be05c 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -105,6 +105,17 @@ public class SalarySobController { return new ResponseResult>(user).run(getSalarySobWrapper(user)::listPage, queryParam); } + /** + * 鏍规嵁鎵g即涔夊姟浜烘煡璇 + */ + @POST + @Path("/listByTaxAgent") + @Produces(MediaType.APPLICATION_JSON) + public String listSalarySob(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listByTaxAgent, queryParam); + } + /** * 钖祫璐﹀鍒楄〃 */ @@ -128,11 +139,11 @@ public class SalarySobController { * 钖祫璐﹀鍒楄〃锛堝垎鏉冿級 */ @POST - @Path("/listAllByAuth") + @Path("/listAuth") @Produces(MediaType.APPLICATION_JSON) - public String listAllByAuth(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public String listAllByAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySobWrapper(user)::listAllByAuth); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listAuth,queryParam); } @@ -326,7 +337,7 @@ public class SalarySobController { response.setContentType("application/octet-stream"); return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } catch (Exception e) { - log.error("浜哄憳鑼冨洿瀵煎叆澶辫触",e); + log.error("浜哄憳鑼冨洿瀵煎叆澶辫触", e); throw e; } } @@ -465,7 +476,6 @@ public class SalarySobController { return new ResponseResult(user).run(getSalarySobItemWrapper(user)::checkLoop, salarySobId); } - /**********************************钖祫璐﹀鐨勮柂璧勯」鐩 end*********************************/ @@ -501,6 +511,7 @@ public class SalarySobController { } /** + * @return String * @description 淇濆瓨钖祫璐﹀鍥炵畻椤圭洰 * @author Harryxzy * @date 2022/11/16 15:05 @@ -616,7 +627,6 @@ public class SalarySobController { /**********************************钖祫璐﹀鐨勪釜绋庣敵鎶ヨ〃瑙勫垯 end*********************************/ - /**********************************璋冭柂璁¤柂瑙勫垯 start*********************************/ diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 1cdc8dd4e..5d06ab13f 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -118,6 +118,14 @@ public class TaxAgentController { return new ResponseResult>>(user).run(getTaxAgentWrapper(user)::list, queryParam); } + @POST + @Path("/listAuth") + @Produces(MediaType.APPLICATION_JSON) + public String selectList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getTaxAgentWrapper(user)::listAuth, queryParam); + } + //鏌ヨ涓◣鎵g即涔夊姟浜轰笅闈㈢殑浠g即鏈烘瀯") @GET @Path("/paymentAgency/list") diff --git a/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java b/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java index 597ad1e47..23525bcad 100644 --- a/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java +++ b/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java @@ -118,9 +118,8 @@ public class AddUpDeductionWrapper extends Service { if (po == null) { throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100338, "绱涓撻」闄勫姞鎵i櫎涓嶅瓨鍦") + "[id:%s]", id)); } - boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - return getAddUpDeductionService(user).exportDetail(po.getEmployeeId(), isChief, queryParam); + return getAddUpDeductionService(user).exportDetail(po.getEmployeeId(), queryParam); } /** @@ -171,13 +170,10 @@ public class AddUpDeductionWrapper extends Service { public String autoAddAll(AddDeductionAutoAddParam param) { Date yearMonth = param.getYearMonthDate(); - if (isLog) { - log.info("涓閿疮璁★紝 鎿嶄綔浜 銆寋}銆", user.getUsername()); - } if (yearMonth == null) { throw new SalaryRunTimeException("涓閿疮璁′紶鍏ユ棩鏈熸牸寮忛敊璇"); } - return getAddUpDeductionService(user).autoAddAll(yearMonth, null, param.getTaxAgentIds()); + return getAddUpDeductionService(user).autoAddAll(yearMonth, false, param.getTaxAgentIds()); } public Map onlineRequest(AddUpDeductionMonthTaxAgentParam param) { diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java new file mode 100644 index 000000000..a05276a71 --- /dev/null +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -0,0 +1,187 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.auth.dto.*; +import com.engine.salary.entity.auth.param.*; +import com.engine.salary.entity.auth.po.AuthDataPO; +import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.entity.auth.vo.Permission; +import com.engine.salary.enums.auth.DataLinkEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.mapper.auth.AuthMapper; +import com.engine.salary.service.auth.*; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + +import java.util.List; +import java.util.stream.Collectors; + + +@Slf4j +public class AuthWrapper extends Service { + + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } + + private AuthMemberService getAuthMemberService(User user) { + return ServiceUtil.getService(AuthMemberServiceImpl.class, user); + } + + private AuthOptService getAuthOptService(User user) { + return ServiceUtil.getService(AuthOptServiceImpl.class, user); + } + + private AuthDataService getAuthDataService(User user) { + return ServiceUtil.getService(AuthDataServiceImpl.class, user); + } + + public PageInfo roleList(AuthRoleListQueryParam param) { + ValidUtil.doValidator(param); + return getAuthRoleService(user).roleList(param); + } + + public AuthRoleDTO getRole(Long id) { + return getAuthRoleService(user).getRole(id); + } + + public Long saveRole(AuthRoleSaveParam param) { + ValidUtil.doValidator(param); + return getAuthRoleService(user).saveRole(param); + } + + + public void deleteRole(List ids) { + getAuthRoleService(user).deleteRole(ids); + } + + public PageInfo memberList(AuthMemberQueryParam param) { + List authMemberPOS = getAuthMemberService(user).list(param.getRoleId()); + int total = authMemberPOS.size(); + authMemberPOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authMemberPOS); + List dtos = authMemberPOS.stream() + .map(po -> AuthMemberDTO.builder() + .id(po.getId()) + .targetTypeName(MemberTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) + .targetType(MemberTargetTypeEnum.parseByValue(po.getTargetType())) + .targetName(po.getTargetName()) + .target(po.getTarget()) + .build()) + .collect(Collectors.toList()); + PageInfo authMemberDTOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), AuthMemberDTO.class); + authMemberDTOPageInfo.setList(dtos); + authMemberDTOPageInfo.setTotal(total); + return authMemberDTOPageInfo; + } + + + public PageInfo memberDetail(AuthMemberQueryParam param) { + List list = getAuthMemberService(user).listRoleEmp(param); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, AuthRoleEmpDTO.class); + } + + public void saveMember(List param) { + + param.forEach(ValidUtil::modify); + + getAuthMemberService(user).save(param); + } + + public void deleteMember(List ids) { + getAuthMemberService(user).delete(ids); + } + + public void syncMember(AuthSyncParam param) { + getAuthMemberService(user).sync(param); + } + + public AuthOptDTO optTree(Long roleId) { + return getAuthOptService(user).optTree(roleId); + } + + public void saveOpt(AuthOptSaveParam opt) { + getAuthOptService(user).save(opt); + } + + public PageInfo dataList(AuthDataQueryParam param) { + List list = getAuthDataService(user).list(param.getRoleId()); + int total = list.size(); + list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list); + List dtos = list.stream().map(po -> AuthDataDTO.builder() + .id(po.getId()) + .link(DataLinkEnum.parseByValue(po.getLink())) + .linkName(DataLinkEnum.parseByValue(po.getLink()).getDefaultLabel()) + .targetTypeName(DataTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) + .targetType(DataTargetTypeEnum.parseByValue(po.getTargetType())) + .targetName(po.getTargetName()) + .target(po.getTarget()) + .sortedIndex(po.getSortedIndex()) + .build()) + .collect(Collectors.toList()); + + PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), AuthDataDTO.class); + page.setList(dtos); + page.setTotal(total); + return page; + + } + + + public PageInfo dataDetail(AuthDataQueryParam param) { + List authRoleDataDTOS = getAuthDataService(user).listRoleData(param); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), authRoleDataDTOS, AuthRoleDataDTO.class); + } + + public void saveData(List params) { + params.forEach(ValidUtil::modify); + + getAuthDataService(user).save(params); + } + + public void deleteData(List ids) { + getAuthDataService(user).delete(ids); + } + + public void syncData(AuthSyncParam param) { + getAuthDataService(user).sync(param); + } + + private AuthMapper getAuthMapper() { + return MapperProxyFactory.getProxy(AuthMapper.class); + } + + public Object auth(String page) { + return getAuthMapper().getTaxEmpOptAuth((long) user.getUID(), page); + } + + public Permission permission(String page) { + return getAuthService(user).permission(page); + } + + public AuthTreeDTO tree(AuthTreeQueryParam param) { + return getAuthService(user).tree(param); + } + + public String sync() { + List authRolePOS = getAuthRoleService(user).listAll(); + authRolePOS.forEach(po -> { + AuthSyncParam param = AuthSyncParam.builder() + .roleId(po.getId()) + .build(); + getAuthMemberService(user).sync(param); + getAuthDataService(user).sync(param); + }); + return ""; + } + +} diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java new file mode 100644 index 000000000..f59d1c934 --- /dev/null +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -0,0 +1,76 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; +import com.engine.salary.entity.push.param.*; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.remote.mode.cmd.GetModeList; +import com.engine.salary.service.PushService; +import com.engine.salary.service.impl.PushServiceImpl; +import com.engine.salary.util.page.PageInfo; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.Map; + + +public class PushWrapper extends Service { + + private PushService getPushService(User user) { + return ServiceUtil.getService(PushServiceImpl.class, user); + } + + + public Object modeList() { + Map map = new HashMap<>(); + map.put("appid", 1); + map.put("appidForAppname", 2); + map.put("aLLorCurrentKey", 1); + Map execute = commandExecutor.execute(new GetModeList(map, user)); + + return execute; + } + public PageInfo settingList(PushSettingQueryParam param) { + return getPushService(user).settingList(param); + } + + public PushSettingPO save(PushSettingSaveParam param) { + return getPushService(user).save(param); + } + + + public void delete(Long id) { + getPushService(user).delete(id); + } + + public PageInfo itemList(PushSettingItemQueryParam param) { + return getPushService(user).itemList(param); + } + + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + return getPushService(user).saveItem(param); + } + + public void deleteItem(Long id) { + getPushService(user).deleteItem(id); + } + + public void push(PushParam pushParam) { +// getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); + getPushService(user).createPushRecord(pushParam.getSalaryAcctRecordId()); + } + + public PageInfo recordList(RecordListQueryParam param) { + + return getPushService(user).recordList(param); + } + + public PageInfo recordDetailList(RecordDetailListQueryParam param) { + return getPushService(user).recordDetailList(param); + } +} diff --git a/src/com/engine/salary/wrapper/RoleWrapper.java b/src/com/engine/salary/wrapper/RoleWrapper.java new file mode 100644 index 000000000..38f06dce0 --- /dev/null +++ b/src/com/engine/salary/wrapper/RoleWrapper.java @@ -0,0 +1,24 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.service.OtherDeductionService; +import com.engine.salary.service.impl.OtherDeductionServiceImpl; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + +/** + * 瑙掕壊 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class RoleWrapper extends Service { + private OtherDeductionService getOtherDeductionService(User user) { + return ServiceUtil.getService(OtherDeductionServiceImpl.class, user); + } + +} diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 7e352ce91..a9f9e0556 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -103,6 +103,8 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 澶勭悊鍘嗗彶鏁版嵁灏嗚柂璧勮处濂椾腑灏嗗叧鑱斾汉鍛樼姸鎬佽浆鎹负List SalarySobUtil.handleEmployeeStatusHistory(); + getSalarySobService(user).handleHistory(); + // 澶勭悊宸ヨ祫鍗曞彂鏀惧巻鍙叉暟鎹 getSalarySendService(user).handleHistory(); // 鏌ヨ钖祫鏍哥畻璁板綍锛堝垎椤碉級 @@ -143,8 +145,8 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 鏌ヨ宸ヨ祫鍗曠殑鏌ヨ鎯呭喌 List salarySendCheckResult = getSalarySendService(user).getSalarySendCheckResult(salaryAcctRecordIds); - Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); - List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); + List taxAgentPOS = getTaxAgentService(user).listAll(); + // 杞崲鎴愬垪琛╠to List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc); dtoPage.setList(salaryAcctRecordListDTOS); @@ -155,24 +157,6 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord dtoPage.clearAndSetColumns(columnList); } } -// WeaTable weaTable = SalaryFormatUtil.getInstance().buildTable(SalaryAcctRecordListDTO.class, dtoPage); - // 鍙湁鏈綊妗f椂鍙互"鏍哥畻"銆"鍒犻櫎"銆"褰掓。" - // 褰掓。鍚庛佺敵鎶ュ悗鍙互"鏌ョ湅"銆"閲嶆柊鏍哥畻" -// for (int i = 0; i < page.getRecords().size(); i++) { -// SalaryAcctRecordPO salaryAcctRecord = page.getRecords().get(i); -// List permissions = weaTable.getOperatesPermission().get(i); -// for (int j = 0; j < permissions.size(); j++) { -// Permission permission = permissions.get(j); -// if ((j == 0 || j == 1 || j == 3) && !Objects.equals(salaryAcctRecord.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())) { -// permission.setVisible(false); -// permission.setDisabled(false); -// } -// if ((j == 2 || j == 5) && Objects.equals(salaryAcctRecord.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())) { -// permission.setVisible(false); -// permission.setDisabled(false); -// } -// } -// } return dtoPage; } diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 39e39c263..c2a3d45eb 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -296,10 +296,11 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult * @param salaryAcctRecordId */ public Boolean checkAuth(Long salaryAcctRecordId) { - if(Objects.isNull(salaryAcctRecordId)){ - return false; - } - return getSalaryAcctResultService(user).checkAuth(salaryAcctRecordId); +// if(Objects.isNull(salaryAcctRecordId)){ +// return false; +// } +// return getSalaryAcctResultService(user).checkAuth(salaryAcctRecordId); + return true; } /** diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 50b6d10a5..4ff541091 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -2,22 +2,20 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.config.SalaryElogConfig; import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.dto.SingleSalaryItemAdjustRecordListDTO; -import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam; -import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustBeforeParam; -import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; -import com.engine.salary.entity.salaryarchive.param.SingleSalaryItemAdjustRecordQueryParam; +import com.engine.salary.entity.salaryarchive.param.*; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; -import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -237,21 +235,11 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); - long currentEmployeeId = user.getUID(); - //鏄惁寮鍚垎鏉 - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - List taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); - - if (CollectionUtils.isEmpty(taxAgentIds)) { - return new PageInfo(); - } - - List salaryArchives = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentIds(taxAgentIds).build()); - List salaryArchiveIds = SalaryEntityUtil.properties(salaryArchives, SalaryArchivePO::getId, Collectors.toList()); - queryParam.setSalaryArchiveIds(salaryArchiveIds); - } + //鍒嗘潈 + SalaryArchiveQueryParam archiveQueryParam = new SalaryArchiveQueryParam(); + archiveQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List salaryArchiveIds = getSalaryArchiveService(user).list(archiveQueryParam).stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + queryParam.setSalaryArchiveIds(salaryArchiveIds); List listResult = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds); listResult = listResult.stream() diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 85977afe1..effea20b0 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -208,8 +208,7 @@ public class SalaryArchiveWrapper extends Service { * @return */ public Map listPage(SalaryArchiveQueryParam queryParam) { - Map list = list(queryParam); - return list; + return list(queryParam); } diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index 15e935539..2a510d8db 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -321,4 +321,8 @@ public class SalaryItemWrapper extends Service { public XSSFWorkbook downloadTemplate(SalaryItemDownloadTemplateParam param) { return getSalaryItemService(user).downloadTemplate(param); } + + public List listAuth(SalaryItemSearchParam param) { + return getSalaryItemService(user).listByName(param.getName()); + } } diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 8bbba561c..f97a798dc 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -22,9 +22,9 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarybill.SalarySendStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; -import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; import com.engine.salary.sys.constant.SalarySysConstant; @@ -33,7 +33,6 @@ import com.engine.salary.sys.enums.PayrollCheckTypeEnum; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryTokenUtil; import com.engine.salary.util.page.PageInfo; @@ -112,23 +111,11 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy try { queryParam.setSalaryMonth(queryParam.getSalaryYearMonth().stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryMonthDate(queryParam.getSalaryYearMonth().stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); - //鍒嗘潈锛岃幏鍙栧綋鍓嶄汉鍛樼鐞嗙殑璐﹀ - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - List list = new ArrayList<>(); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (CollectionUtils.isNotEmpty(salarySobIds)) { - queryParam.setSalarySobIds(salarySobIds); - SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - list = salarySendMapper.list(queryParam); - } - } else { - SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - list = salarySendMapper.list(queryParam); - } + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); - list.stream().forEach(dto -> { + List list = getSalarySendService(user).list(queryParam); + + list.forEach(dto -> { // 鍥炵畻杩囷紝浣嗘槸鏌ョ湅鐨勬槸鏅氬伐璧勫崟锛堜笉鑳芥煡鐪嬭鎯咃級;鍥炵畻杩囷紝浣嗘槸鏌ョ湅鐨勬槸鍥炵畻宸ヨ祫鍗曪紙鍙互鍙戯級锛涜褰曟病鍥炵畻杩囷紙鍙互鍙戯級 if(Objects.equals(dto.getSalaryAcctRecordType(), NumberUtils.INTEGER_ONE) && Objects.equals(dto.getSalaryAcctType(),NumberUtils.INTEGER_ZERO)){ dto.setCanSeeDetail(false); diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index 3eea30516..7e1a719be 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -1,5 +1,6 @@ package com.engine.salary.wrapper; +import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; @@ -10,10 +11,7 @@ import com.engine.salary.entity.salarysob.bo.SalarySobBO; import com.engine.salary.entity.salarysob.bo.SalarySobBackItemBO; import com.engine.salary.entity.salarysob.dto.SalarySobBasicFormDTO; import com.engine.salary.entity.salarysob.dto.SalarySobListDTO; -import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; -import com.engine.salary.entity.salarysob.param.SalarySobDisableParam; -import com.engine.salary.entity.salarysob.param.SalarySobDuplicateParam; -import com.engine.salary.entity.salarysob.param.SalarySobListQueryParam; +import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobDefaultBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; @@ -27,8 +25,8 @@ import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalarySobUtil; -import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.page.PageInfo; import org.apache.commons.collections4.CollectionUtils; import weaver.hrm.User; @@ -82,13 +80,34 @@ public class SalarySobWrapper extends Service { // 澶勭悊鍘嗗彶鏁版嵁锛屽皢钖祫璐﹀涓皢鍏宠仈浜哄憳鐘舵佽浆鎹负List SalarySobUtil.handleEmployeeStatusHistory(); + getSalarySobService(user).handleHistory(); + + // 鏌ヨ钖祫璐﹀ PageInfo page = getSalarySobService(user).listPageByParam(queryParam); // 钖祫璐﹀po杞崲鎴愯柂璧勮处濂楀垪琛╠to List taxAgentPOS = getTaxAgentService(user).listAll(); - Map taxAgentIdTONameMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId, TaxAgentPO::getName); - List salarySobListDTOS = SalarySobBO.convert2ListDTO(page.getList(), taxAgentIdTONameMap); + + List salarySobListDTOS = page.getList().stream() + .map(salarySobPO -> { + List taxAgentIds = salarySobPO.getTaxAgentIds(); + String taxAgentName = taxAgentPOS.stream().filter(po -> taxAgentIds.contains(po.getId())).map(TaxAgentPO::getName).collect(Collectors.joining(",")); + return SalarySobListDTO.builder() + .id(salarySobPO.getId()) + .name(salarySobPO.getName()) + .taxAgentName(taxAgentName) + .taxAgentIds(taxAgentIds) + .salaryCycle(SalarySobBO.buildSalaryCycle(salarySobPO)) + .disable(salarySobPO.getDisable()) + .description(salarySobPO.getDescription()) + .opts(salarySobPO.getOpts()) + .build(); + + }) + .collect(Collectors.toList()); + + PageInfo dtoPage = new PageInfo<>(salarySobListDTOS, SalarySobListDTO.class); dtoPage.setTotal(page.getTotal()); dtoPage.setPageNum(page.getPageNum()); @@ -114,8 +133,8 @@ public class SalarySobWrapper extends Service { * * @return */ - public List listAllByAuth() { - return getSalarySobService(user).listAllByAuth(); + public List listAuth(SalarySobQueryParam param) { + return getSalarySobService(user).listAuth(param); } private void handleSalarySobBackItemHistory(SalarySobListQueryParam queryParam) { @@ -274,10 +293,13 @@ public class SalarySobWrapper extends Service { } Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - return taxAgentIds.contains(salarySobPO.getTaxAgentId()) || Objects.isNull(salarySobPO.getTaxAgentId()); + Collection intersection = CollectionUtil.intersection(taxAgentIds, salarySobPO.getTaxAgentIds()); + return intersection.size() > 0; } + public List listByTaxAgent(SalarySobQueryParam param) { + return getSalarySobService(user).list(param); + } public List> incomeCategoryList() { List> list = new ArrayList<>(); Arrays.stream(IncomeCategoryEnum.values()) diff --git a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java index 3d04d3341..b78eae261 100644 --- a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java @@ -86,67 +86,8 @@ public class SalaryTemplateWrapper extends Service { public PageInfo list(SalaryTemplateQueryParam queryParam) { PageInfo listPage = getSalaryTemplateService(user).listPage(queryParam); return listPage; -// SalaryWeaTable table = new SalaryWeaTable(user, SalaryTemplateListDTO.class); -// -// String fields = " t.id" + -// " , t.name" + -// " , t.replenish_name as replenishName" + -// " , s.name as salarySob" + -// " , t.use_type as useType" + -// " , t.description"; -// -// String from = " from hrsa_salary_template t left join hrsa_salary_sob s on t.salary_sob_id = s.id "; -// -// table.setBackfields(fields); -// table.setSqlform(from); -// table.setSqlwhere(makeSqlWhere(queryParam)); -// table.setSqlorderby("t.id DESC"); -// table.setSqlprimarykey("t.id"); -// table.setSqlisdistinct("false"); -// -// WeaResultMsg result = new WeaResultMsg(false); -// result.putAll(table.makeDataResult()); -// result.success(); -// return result.getResultMap(); - } -// private String makeSqlWhere(SalaryTemplateQueryParam queryParam) { -// DBType dbType = DBType.get(new RecordSet().getDBType()); -// -// String sqlWhere = " t.delete_type = 0 "; -// -// String name = queryParam.getName(); -// if (StringUtils.isNotBlank(name)) { -// sqlWhere += " AND t.name " + dbType.like(name); -// } -// -// Collection ids = queryParam.getIds(); -// -// if (ids != null && ids.size() > 0) { -// sqlWhere += " AND t.id in (" + ids.stream().map(Object::toString).collect(Collectors.joining(",")) + ") "; -// } -// -// Long salarySobId = queryParam.getSalarySobId(); -// -// if (salarySobId != null) { -// sqlWhere += " AND t.salary_sob_id = " + salarySobId; -// } -// -// long currentEmployeeId = user.getUID(); -// Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); -// if (needAuth) { -// List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); -// Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); -// if (CollectionUtils.isNotEmpty(salarySobIds)) { -// sqlWhere += " AND t.salary_sob_id in (" + salarySobIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") "; -// } else { -// sqlWhere += " AND 1=2 "; -// } -// } -// -// -// return sqlWhere; -// } + } /** * 鑾峰彇宸ヨ祫鍗曟ā鏉垮熀纭璁剧疆琛ㄥ崟 diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index d3ae590e6..e528bbb77 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -17,10 +17,11 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthRoleService; +import com.engine.salary.service.auth.AuthRoleServiceImpl; import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; -import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -67,6 +68,9 @@ public class TaxAgentWrapper extends Service { return ServiceUtil.getService(TaxAgentExcelServiceImpl.class, user); } + public AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } // private PaymentAgencyService paymentAgencyService; // @@ -117,46 +121,26 @@ public class TaxAgentWrapper extends Service { // 鏄惁寮鍚垎鏉 boolean isOpenDevolution = getTaxAgentBaseService(user).isOpenDevolution(); -// List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey); - - PageInfo page = null; - // 鍒嗘潈鎯呭喌涓嬶紝鏍规嵁鑷繁浣滀负绠$悊鍛樿繃婊ゅ垪琛 - if (isOpenDevolution && !isChief) { - List list = getTaxAgentService(user).list(queryParam); - // 1.鍒ゆ柇鑷繁鏄惁鏄鐞嗗憳锛 濡傛灉鏄鐞嗗憳锛屽氨鏄兘澶熸搷浣滄墍灞炰釜绋庢墸缂翠箟鍔′汉涓嬬殑鎵鏈変汉鐨勬暟鎹 - List taxAgentAdminList = getTaxAgentAdminService(user).listByTaxAgentIdsAndEmployeeId(list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()), (long) user.getUID()); - // 鏄鐞嗗憳鐨勫垪琛 - List adminTaxAgentIds = taxAgentAdminList.stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); - list = list.stream().filter(f -> adminTaxAgentIds.contains(f.getId())).collect(Collectors.toList()); - // 鍒嗛〉鍙傛暟 - // 濉厖鎬绘暟鍜屽綋椤垫暟鎹 - PageInfo dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); - dtoPage.setTotal(list.size()); - dtoPage.setPageNum(queryParam.getCurrent()); - dtoPage.setPageSize(queryParam.getPageSize()); - dtoPage.setList(SalaryPageUtil.subList(dtoPage.getPageNum(), dtoPage.getPageSize(), list)); - page = dtoPage; - } else { - page = getTaxAgentService(user).listPage(queryParam); - } - + PageInfo page = getTaxAgentService(user).listPage(queryParam); + List taxAgentPOS = page.getList(); PageInfo> listPage = new PageInfo<>(); - String setLabel = SalaryI18nUtil.getI18nLabel(94614, "璁剧疆"); if (isOpenDevolution) { - List list = page.getList(); + List list = taxAgentPOS; List taxAgentIds = list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); List taxAgentAdmins = getTaxAgentAdminService(user).listByTaxAgentIds(taxAgentIds); List adminList = getSalaryEmployeeService(user).getEmployeeByIdsAll(taxAgentAdmins.stream().map(TaxAgentAdminPO::getEmployeeId).distinct().collect(Collectors.toList())); - listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, taxAgentAdmins, adminList, setLabel)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, taxAgentAdmins, adminList)); } else { - listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, setLabel)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null)); } listPage.setTotal(page.getTotal()); listPage.setPageNum(page.getPageNum()); listPage.setPageSize(page.getPageSize()); + + //鏋勯犺〃鏍 TaxAgentBO.buildTaxAgentTable(listPage, isOpenDevolution); @@ -164,6 +148,10 @@ public class TaxAgentWrapper extends Service { } + public List listAuth(TaxAgentQueryParam taxAgentQueryParam) { + return getTaxAgentService(user).listAuth(taxAgentQueryParam); + } + public List> paymentAgencyList(TaxAgentQueryParam queryParam) { // List taxAgentPOS = getTaxAgentService(user).listByIds(queryParam.getIds()); // List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey);