diff --git a/resource/WEB-INF/lib/hrmelog.jar b/resource/WEB-INF/lib/hrmelog.jar index b1ce56c11..7589cfeae 100644 Binary files a/resource/WEB-INF/lib/hrmelog.jar and b/resource/WEB-INF/lib/hrmelog.jar differ diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 5c9223804..e8125608b 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.15.1.2407.01 +version=2.19.1.2501.01 openFormulaForcedEditing=false \ No newline at end of file diff --git a/resource/sqlupgrade/DM/sql202303130202.sql b/resource/sqlupgrade/DM/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/DM/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/DM/sql202404251103.sql b/resource/sqlupgrade/DM/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/DM/sql202408090103.sql b/resource/sqlupgrade/DM/sql202408090103.sql new file mode 100644 index 000000000..c7f9f1c64 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202408090103.sql @@ -0,0 +1,42 @@ +CREATE TABLE hrsa_variable_archive ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NULL , + salary_month DATE NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_archive_item ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + variable_archive_id NUMBER(38,0) NOT NULL, + variable_item_id NUMBER(38,0) NOT NULL, + item_value varchar2(255) NULL , + create_time DATE NOT NULL , + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL , + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_item ( + id NUMBER(38,0) NOT NULL , + name varchar2(255) NOT NULL , + code varchar2(255) NOT NULL, + data_type varchar2(20) NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL , + PRIMARY KEY (id) +); +/ + diff --git a/resource/sqlupgrade/DM/sql202408120703.sql b/resource/sqlupgrade/DM/sql202408120703.sql new file mode 100644 index 000000000..00332785c --- /dev/null +++ b/resource/sqlupgrade/DM/sql202408120703.sql @@ -0,0 +1,3 @@ +alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/DM/sql202409130201.sql b/resource/sqlupgrade/DM/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/DM/sql202409130302.sql b/resource/sqlupgrade/DM/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/DM/sql202410090103.sql b/resource/sqlupgrade/DM/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/DM/sql202410090203.sql b/resource/sqlupgrade/DM/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/DM/sql202410100103.sql b/resource/sqlupgrade/DM/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/DM/sql202410110103.sql b/resource/sqlupgrade/DM/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/DM/sql202410170303.sql b/resource/sqlupgrade/DM/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/DM/sql202410250303.sql b/resource/sqlupgrade/DM/sql202410250303.sql new file mode 100644 index 000000000..be178d1f8 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410250303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add account_type NUMBER; +/ + diff --git a/resource/sqlupgrade/DM/sql202411060203.sql b/resource/sqlupgrade/DM/sql202411060203.sql new file mode 100644 index 000000000..d19f32161 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + template_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/DM/sql202411250103.sql b/resource/sqlupgrade/DM/sql202411250103.sql new file mode 100644 index 000000000..9a56df46d --- /dev/null +++ b/resource/sqlupgrade/DM/sql202411250103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_setting add ( + default_setting number +); +/ + diff --git a/resource/sqlupgrade/DM/sql202412030103.sql b/resource/sqlupgrade/DM/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/DM/sql202412160303.sql b/resource/sqlupgrade/DM/sql202412160303.sql new file mode 100644 index 000000000..76dc4c94e --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412160303.sql @@ -0,0 +1,122 @@ +create table hrsa_other_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + other_deduction varchar2(50), + remark varchar2(255) +); +/ + +create table hrsa_health_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + identification_number varchar2(255), + effective_date date, + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50) +); +/ + +create table hrsa_grant_donation +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + recipient_name varchar2(255), + tax_code varchar2(255), + donation_number varchar2(255), + donate_date date, + donate_amount varchar2(50), + deduction_proportion varchar2(10), + actual_deduction varchar2(50) +); +/ + +create table hrsa_endowment_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + account_number varchar2(255), + check_code varchar2(255), + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50), + deduction_month date +); +/ + +create table hrsa_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + derate_item varchar2(255), + derate_property varchar2(255), + derate_amount varchar2(255) +); +/ + +create table hrsa_free_income +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + free_item varchar2(255), + free_property varchar2(255), + free_amount varchar2(255) +); +/ + diff --git a/resource/sqlupgrade/DM/sql202412160403.sql b/resource/sqlupgrade/DM/sql202412160403.sql new file mode 100644 index 000000000..07a4c3c3b --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412160403.sql @@ -0,0 +1,18 @@ +alter table hrsa_derate_deduction add employee_type int; +/ + +alter table hrsa_endowment_insurance add employee_type int; +/ + +alter table hrsa_free_income add employee_type int; +/ + +alter table hrsa_grant_donation add employee_type int; +/ + +alter table hrsa_health_insurance add employee_type int; +/ + +alter table hrsa_other_derate_deduction add employee_type int; +/ + diff --git a/resource/sqlupgrade/DM/sql202412230103.sql b/resource/sqlupgrade/DM/sql202412230103.sql new file mode 100644 index 000000000..7d3959666 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412230103.sql @@ -0,0 +1,25 @@ +create table hrsa_personal_pension +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + voucher_type varchar2(255), + voucher_no varchar2(255), + pay_amount varchar2(255), + data_source int, + collect_source varchar2(50), + pay_month date, + eb_data_id number, + voucher_type_name varchar2(50), + employee_type int +); +/ + diff --git a/resource/sqlupgrade/DM/sql202412240103.sql b/resource/sqlupgrade/DM/sql202412240103.sql new file mode 100644 index 000000000..3762c4a0d --- /dev/null +++ b/resource/sqlupgrade/DM/sql202412240103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_other_deduction ADD ( + free_income varchar2(255) NULL +); +/ + +ALTER TABLE hrsa_other_deduction ADD ( + derate_deduction varchar2(255) NULL +); +/ + diff --git a/resource/sqlupgrade/GS/sql202303130202.sql b/resource/sqlupgrade/GS/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/GS/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/GS/sql202404251103.sql b/resource/sqlupgrade/GS/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/GS/sql202408090103.sql b/resource/sqlupgrade/GS/sql202408090103.sql new file mode 100644 index 000000000..c7f9f1c64 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202408090103.sql @@ -0,0 +1,42 @@ +CREATE TABLE hrsa_variable_archive ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NULL , + salary_month DATE NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_archive_item ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + variable_archive_id NUMBER(38,0) NOT NULL, + variable_item_id NUMBER(38,0) NOT NULL, + item_value varchar2(255) NULL , + create_time DATE NOT NULL , + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL , + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_item ( + id NUMBER(38,0) NOT NULL , + name varchar2(255) NOT NULL , + code varchar2(255) NOT NULL, + data_type varchar2(20) NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL , + PRIMARY KEY (id) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202408120703.sql b/resource/sqlupgrade/GS/sql202408120703.sql new file mode 100644 index 000000000..00332785c --- /dev/null +++ b/resource/sqlupgrade/GS/sql202408120703.sql @@ -0,0 +1,3 @@ +alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/GS/sql202409130201.sql b/resource/sqlupgrade/GS/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/GS/sql202409130302.sql b/resource/sqlupgrade/GS/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/GS/sql202410090103.sql b/resource/sqlupgrade/GS/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202410090203.sql b/resource/sqlupgrade/GS/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/GS/sql202410100103.sql b/resource/sqlupgrade/GS/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/GS/sql202410110103.sql b/resource/sqlupgrade/GS/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202410170303.sql b/resource/sqlupgrade/GS/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202410250303.sql b/resource/sqlupgrade/GS/sql202410250303.sql new file mode 100644 index 000000000..be178d1f8 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410250303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add account_type NUMBER; +/ + diff --git a/resource/sqlupgrade/GS/sql202411060203.sql b/resource/sqlupgrade/GS/sql202411060203.sql new file mode 100644 index 000000000..d19f32161 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + template_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202411250103.sql b/resource/sqlupgrade/GS/sql202411250103.sql new file mode 100644 index 000000000..9a56df46d --- /dev/null +++ b/resource/sqlupgrade/GS/sql202411250103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_setting add ( + default_setting number +); +/ + diff --git a/resource/sqlupgrade/GS/sql202412030103.sql b/resource/sqlupgrade/GS/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/GS/sql202412160303.sql b/resource/sqlupgrade/GS/sql202412160303.sql new file mode 100644 index 000000000..76dc4c94e --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412160303.sql @@ -0,0 +1,122 @@ +create table hrsa_other_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + other_deduction varchar2(50), + remark varchar2(255) +); +/ + +create table hrsa_health_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + identification_number varchar2(255), + effective_date date, + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50) +); +/ + +create table hrsa_grant_donation +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + recipient_name varchar2(255), + tax_code varchar2(255), + donation_number varchar2(255), + donate_date date, + donate_amount varchar2(50), + deduction_proportion varchar2(10), + actual_deduction varchar2(50) +); +/ + +create table hrsa_endowment_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + account_number varchar2(255), + check_code varchar2(255), + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50), + deduction_month date +); +/ + +create table hrsa_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + derate_item varchar2(255), + derate_property varchar2(255), + derate_amount varchar2(255) +); +/ + +create table hrsa_free_income +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + free_item varchar2(255), + free_property varchar2(255), + free_amount varchar2(255) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202412160403.sql b/resource/sqlupgrade/GS/sql202412160403.sql new file mode 100644 index 000000000..07a4c3c3b --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412160403.sql @@ -0,0 +1,18 @@ +alter table hrsa_derate_deduction add employee_type int; +/ + +alter table hrsa_endowment_insurance add employee_type int; +/ + +alter table hrsa_free_income add employee_type int; +/ + +alter table hrsa_grant_donation add employee_type int; +/ + +alter table hrsa_health_insurance add employee_type int; +/ + +alter table hrsa_other_derate_deduction add employee_type int; +/ + diff --git a/resource/sqlupgrade/GS/sql202412230103.sql b/resource/sqlupgrade/GS/sql202412230103.sql new file mode 100644 index 000000000..7d3959666 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412230103.sql @@ -0,0 +1,25 @@ +create table hrsa_personal_pension +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + voucher_type varchar2(255), + voucher_no varchar2(255), + pay_amount varchar2(255), + data_source int, + collect_source varchar2(50), + pay_month date, + eb_data_id number, + voucher_type_name varchar2(50), + employee_type int +); +/ + diff --git a/resource/sqlupgrade/GS/sql202412240103.sql b/resource/sqlupgrade/GS/sql202412240103.sql new file mode 100644 index 000000000..3762c4a0d --- /dev/null +++ b/resource/sqlupgrade/GS/sql202412240103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_other_deduction ADD ( + free_income varchar2(255) NULL +); +/ + +ALTER TABLE hrsa_other_deduction ADD ( + derate_deduction varchar2(255) NULL +); +/ + diff --git a/resource/sqlupgrade/JC/sql202303130202.sql b/resource/sqlupgrade/JC/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/JC/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/JC/sql202404251103.sql b/resource/sqlupgrade/JC/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/JC/sql202408090103.sql b/resource/sqlupgrade/JC/sql202408090103.sql new file mode 100644 index 000000000..c7f9f1c64 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202408090103.sql @@ -0,0 +1,42 @@ +CREATE TABLE hrsa_variable_archive ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NULL , + salary_month DATE NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_archive_item ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + variable_archive_id NUMBER(38,0) NOT NULL, + variable_item_id NUMBER(38,0) NOT NULL, + item_value varchar2(255) NULL , + create_time DATE NOT NULL , + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL , + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_item ( + id NUMBER(38,0) NOT NULL , + name varchar2(255) NOT NULL , + code varchar2(255) NOT NULL, + data_type varchar2(20) NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL , + PRIMARY KEY (id) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202408120703.sql b/resource/sqlupgrade/JC/sql202408120703.sql new file mode 100644 index 000000000..00332785c --- /dev/null +++ b/resource/sqlupgrade/JC/sql202408120703.sql @@ -0,0 +1,3 @@ +alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/JC/sql202409130201.sql b/resource/sqlupgrade/JC/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/JC/sql202409130302.sql b/resource/sqlupgrade/JC/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/JC/sql202410090103.sql b/resource/sqlupgrade/JC/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202410090203.sql b/resource/sqlupgrade/JC/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/JC/sql202410100103.sql b/resource/sqlupgrade/JC/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/JC/sql202410110103.sql b/resource/sqlupgrade/JC/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202410170303.sql b/resource/sqlupgrade/JC/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202410250303.sql b/resource/sqlupgrade/JC/sql202410250303.sql new file mode 100644 index 000000000..be178d1f8 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410250303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add account_type NUMBER; +/ + diff --git a/resource/sqlupgrade/JC/sql202411060203.sql b/resource/sqlupgrade/JC/sql202411060203.sql new file mode 100644 index 000000000..d19f32161 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + template_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202411250103.sql b/resource/sqlupgrade/JC/sql202411250103.sql new file mode 100644 index 000000000..9a56df46d --- /dev/null +++ b/resource/sqlupgrade/JC/sql202411250103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_setting add ( + default_setting number +); +/ + diff --git a/resource/sqlupgrade/JC/sql202412030103.sql b/resource/sqlupgrade/JC/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/JC/sql202412160303.sql b/resource/sqlupgrade/JC/sql202412160303.sql new file mode 100644 index 000000000..76dc4c94e --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412160303.sql @@ -0,0 +1,122 @@ +create table hrsa_other_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + other_deduction varchar2(50), + remark varchar2(255) +); +/ + +create table hrsa_health_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + identification_number varchar2(255), + effective_date date, + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50) +); +/ + +create table hrsa_grant_donation +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + recipient_name varchar2(255), + tax_code varchar2(255), + donation_number varchar2(255), + donate_date date, + donate_amount varchar2(50), + deduction_proportion varchar2(10), + actual_deduction varchar2(50) +); +/ + +create table hrsa_endowment_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + account_number varchar2(255), + check_code varchar2(255), + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50), + deduction_month date +); +/ + +create table hrsa_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + derate_item varchar2(255), + derate_property varchar2(255), + derate_amount varchar2(255) +); +/ + +create table hrsa_free_income +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + free_item varchar2(255), + free_property varchar2(255), + free_amount varchar2(255) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202412160403.sql b/resource/sqlupgrade/JC/sql202412160403.sql new file mode 100644 index 000000000..07a4c3c3b --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412160403.sql @@ -0,0 +1,18 @@ +alter table hrsa_derate_deduction add employee_type int; +/ + +alter table hrsa_endowment_insurance add employee_type int; +/ + +alter table hrsa_free_income add employee_type int; +/ + +alter table hrsa_grant_donation add employee_type int; +/ + +alter table hrsa_health_insurance add employee_type int; +/ + +alter table hrsa_other_derate_deduction add employee_type int; +/ + diff --git a/resource/sqlupgrade/JC/sql202412230103.sql b/resource/sqlupgrade/JC/sql202412230103.sql new file mode 100644 index 000000000..7d3959666 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412230103.sql @@ -0,0 +1,25 @@ +create table hrsa_personal_pension +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + voucher_type varchar2(255), + voucher_no varchar2(255), + pay_amount varchar2(255), + data_source int, + collect_source varchar2(50), + pay_month date, + eb_data_id number, + voucher_type_name varchar2(50), + employee_type int +); +/ + diff --git a/resource/sqlupgrade/JC/sql202412240103.sql b/resource/sqlupgrade/JC/sql202412240103.sql new file mode 100644 index 000000000..3762c4a0d --- /dev/null +++ b/resource/sqlupgrade/JC/sql202412240103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_other_deduction ADD ( + free_income varchar2(255) NULL +); +/ + +ALTER TABLE hrsa_other_deduction ADD ( + derate_deduction varchar2(255) NULL +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202303130202.sql b/resource/sqlupgrade/Mysql/sql202303130202.sql deleted file mode 100644 index 81f96bbd2..000000000 --- a/resource/sqlupgrade/Mysql/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -; -Delete from LeftMenuConfig where infoid=100186 -; -call LMConfig_U_ByInfoInsert (2,100118,9) -; -call LMInfo_Insert (100186,541290,'','',2,100118,9,18) -; -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202404251103.sql b/resource/sqlupgrade/Mysql/sql202404251103.sql new file mode 100644 index 000000000..61d412db9 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202404251103.sql @@ -0,0 +1,16 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint NOT NULL, + salary_sob_id bigint NOT NULL, + open_approval int NOT NULL, + approval_group_setting text NULL, + workflow_url varchar(500) NULL DEFAULT NULL, + delete_type int NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + creator bigint NOT NULL, + PRIMARY KEY (id) +); + +alter table hrsa_salary_acct_record add approval_id varchar(50); + +alter table hrsa_salary_acct_record add approval_status varchar(50); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202408090103.sql b/resource/sqlupgrade/Mysql/sql202408090103.sql new file mode 100644 index 000000000..e4640368e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202408090103.sql @@ -0,0 +1,43 @@ +CREATE TABLE hrsa_variable_archive ( + id bigint NOT NULL, + employee_id bigint NULL , + salary_month datetime NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) +; + + + +CREATE TABLE hrsa_variable_archive_item ( + id bigint NOT NULL, + employee_id bigint NOT NULL, + variable_archive_id bigint NOT NULL, + variable_item_id bigint NOT NULL, + item_value varchar(255) NULL , + create_time datetime NOT NULL , + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL , + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) ; + + + +CREATE TABLE hrsa_variable_item ( + id bigint NOT NULL, + name varchar(255) NOT NULL, + code varchar(255) NOT NULL, + data_type varchar(20) NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +); diff --git a/resource/sqlupgrade/Mysql/sql202408120703.sql b/resource/sqlupgrade/Mysql/sql202408120703.sql new file mode 100644 index 000000000..c835f6627 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202408120703.sql @@ -0,0 +1 @@ +alter table hrsa_variable_archive add tax_agent_id bigint; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202409130201.sql b/resource/sqlupgrade/Mysql/sql202409130201.sql new file mode 100644 index 000000000..50f416219 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) +; +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=char_length(labelname) ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=char_length(labelname) )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 +; diff --git a/resource/sqlupgrade/Mysql/sql202409130302.sql b/resource/sqlupgrade/Mysql/sql202409130302.sql new file mode 100644 index 000000000..e53f1a601 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +; +Delete from LeftMenuConfig where infoid=100219 +; +call LMConfig_U_ByInfoInsert (2,100126,0) +; +call LMInfo_Insert (100219,548025,'','',2,100126,7,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202410090103.sql b/resource/sqlupgrade/Mysql/sql202410090103.sql new file mode 100644 index 000000000..a7bb9b4d8 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410090103.sql @@ -0,0 +1,22 @@ +ALTER TABLE hrsa_bill_detail_temp +ADD COLUMN subcompany_name text , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name text , +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name text , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall text , +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status text ; + + +ALTER TABLE hrsa_bill_detail +ADD COLUMN subcompany_name text , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name text , +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name text , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall text , +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status text ; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202410090203.sql b/resource/sqlupgrade/Mysql/sql202410090203.sql new file mode 100644 index 000000000..0b58cbde8 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410090203.sql @@ -0,0 +1,29 @@ +update hrsa_bill_detail a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId + set a.department_id = b.departmentId, + a.department_name = b.departmentName, + a.subcompany_id = b.subcompanyid, + a.subcompany_name = b.subcompanyName, + a.jobtitle_id = b.jobtitleId, + a.jobtitle_name = b.jobtitleName, + a.jobcall_id = b.jobcallId, + a.jobcall = b.jobcall, + a.status = b.status +where a.delete_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202410100103.sql b/resource/sqlupgrade/Mysql/sql202410100103.sql new file mode 100644 index 000000000..5b645e3f6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410100103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_acct_result_template ADD COLUMN type int(0) NULL ; + +update hrsa_acct_result_template set type = 0; diff --git a/resource/sqlupgrade/Mysql/sql202410110103.sql b/resource/sqlupgrade/Mysql/sql202410110103.sql new file mode 100644 index 000000000..04ed725c6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410110103.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_page_list_setting +( + id bigint(0) NOT NULL , + setting text , + page varchar(200), + creator bigint(0), + create_time datetime(0) , + update_time datetime(0), + delete_type int(0) , + tenant_key varchar(10) , + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202410170303.sql b/resource/sqlupgrade/Mysql/sql202410170303.sql new file mode 100644 index 000000000..3b0f772c0 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410170303.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_salary_acct_emp ADD COLUMN lock_items varchar(4000); diff --git a/resource/sqlupgrade/Mysql/sql202410250303.sql b/resource/sqlupgrade/Mysql/sql202410250303.sql new file mode 100644 index 000000000..c1c7cb26c --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410250303.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_salary_acct_emp ADD COLUMN account_type int(0); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202411060203.sql b/resource/sqlupgrade/Mysql/sql202411060203.sql new file mode 100644 index 000000000..57144b7ee --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202411060203.sql @@ -0,0 +1,28 @@ +CREATE TABLE hrsa_page_link +( + id bigint(0) NOT NULL, + employee_id bigint(0), + page varchar(200), + template_id bigint(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 +); + +CREATE TABLE hrsa_page_list_template ( +id bigint(0) NOT NULL, +name varchar(200), +page varchar(200), +shared_type int(0), +limit_ids varchar(2000), +setting text, +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/Mysql/sql202411250103.sql b/resource/sqlupgrade/Mysql/sql202411250103.sql new file mode 100644 index 000000000..0a79e673f --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202411250103.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_page_list_setting ADD COLUMN default_setting int; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202412030103.sql b/resource/sqlupgrade/Mysql/sql202412030103.sql new file mode 100644 index 000000000..66c85fb04 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int; + +update hrsa_page_list_template set system_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202412160303.sql b/resource/sqlupgrade/Mysql/sql202412160303.sql new file mode 100644 index 000000000..c10d7fee8 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412160303.sql @@ -0,0 +1,132 @@ +create table hrsa_other_derate_deduction +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + other_deduction varchar(50) comment '凪麿受窒飽駆' , + remark varchar(255) comment '姥廣' +) +; + + +create table hrsa_health_insurance +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + identification_number varchar(255) comment '飽單紛艶鷹' , + effective_date date comment '隠汽伏丼晩豚' , + year_premium varchar(50) comment '定業隠継' , + month_premium varchar(50) comment '埖業隠継' , + current_deduction varchar(50) comment '云豚諏茅署駆' +) +; + + +create table hrsa_grant_donation +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + recipient_name varchar(255) comment '鞭奘汽了兆各' , + tax_code varchar(255) comment '鞭奘汽了追飽繁紛艶催' , + donation_number varchar(255) comment '乗奘鴇屬催' , + donate_date date comment '乗奘晩豚' , + donate_amount varchar(50) comment '乗奘署駆' , + deduction_proportion varchar(10) comment '諏茅曳箭' , + actual_deduction varchar(50) comment '糞縞諏茅署駆' +) +; + + + +create table hrsa_endowment_insurance +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + account_number varchar(255) comment '飽决劍析嬲薩園催' , + check_code varchar(255) comment '烏飽丕刮鷹' , + year_premium varchar(50) comment '定業隠継' , + month_premium varchar(50) comment '埖業隠継' , + current_deduction varchar(50) comment '云豚諏茅署駆' , + deduction_month date comment '賦萩諏茅埖芸' +) +; + + +create table hrsa_derate_deduction +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + derate_item varchar(255) comment '受窒並' , + derate_property varchar(255) comment '受窒來嵎' , + derate_amount varchar(255) comment '受窒飽駆' +) +; + + + +create table hrsa_free_income +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + free_item varchar(255) comment '窒飽並' , + free_property varchar(255) comment '窒飽來嵎' , + free_amount varchar(255) comment '窒飽署駆' +) +; + + + + diff --git a/resource/sqlupgrade/Mysql/sql202412160403.sql b/resource/sqlupgrade/Mysql/sql202412160403.sql new file mode 100644 index 000000000..601430556 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412160403.sql @@ -0,0 +1,12 @@ +alter table hrsa_derate_deduction add employee_type int +; +alter table hrsa_endowment_insurance add employee_type int +; +alter table hrsa_free_income add employee_type int +; +alter table hrsa_grant_donation add employee_type int +; +alter table hrsa_health_insurance add employee_type int +; +alter table hrsa_other_derate_deduction add employee_type int +; diff --git a/resource/sqlupgrade/Mysql/sql202412230103.sql b/resource/sqlupgrade/Mysql/sql202412230103.sql new file mode 100644 index 000000000..1905ea452 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412230103.sql @@ -0,0 +1,24 @@ +create table hrsa_personal_pension +( + id bigint primary key comment 'ID' , + create_time datetime comment '幹秀扮寂' , + update_time datetime comment '俐個扮寂' , + creator bigint comment '幹秀繁id' , + delete_type int default 0 comment '頁倦評茅' , + tenant_key varchar(10) comment '怩薩KEY' , + main_id bigint comment '麼燕方象id' , + tax_year_month date comment '飽錘侭奉豚' , + employee_id bigint comment '繁埀id' , + tax_agent_id bigint comment '倖飽諏宿吶暦繁id' , + file_status int comment '拷亀彜蓑 0隆拷亀 1厮拷亀' , + voucher_type varchar(255) comment '鴇屬窃侏' , + voucher_no varchar(255) comment '鴇屬園鷹' , + pay_amount varchar(255) comment '署駆' , + data_source int comment '方象栖坿' , + collect_source varchar(50) comment '寡鹿栖坿' , + pay_month date comment '宿継埖業' , + eb_data_id bigint comment 'eb方象id' , + voucher_type_name varchar(50) comment '鴇屬窃侏' , + employee_type int comment '繁埀窃侏' +) +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202412240103.sql b/resource/sqlupgrade/Mysql/sql202412240103.sql new file mode 100644 index 000000000..fb1d84ef2 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202412240103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_other_deduction +ADD COLUMN free_income varchar(255) , +ADD COLUMN derate_deduction varchar(255) ; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202303130202.sql b/resource/sqlupgrade/Oracle/sql202303130202.sql deleted file mode 100644 index d6b3c8be5..000000000 --- a/resource/sqlupgrade/Oracle/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -/ -Delete from LeftMenuConfig where infoid=100186 -/ -call LMConfig_U_ByInfoInsert (2,100118,9) -/ -call LMInfo_Insert (100186,541290,'','',2,100118,9,18) -/ -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202404251103.sql b/resource/sqlupgrade/Oracle/sql202404251103.sql new file mode 100644 index 000000000..ed864ec3e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202404251103.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +) +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50) +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202408090103.sql b/resource/sqlupgrade/Oracle/sql202408090103.sql new file mode 100644 index 000000000..bac09a209 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202408090103.sql @@ -0,0 +1,42 @@ +CREATE TABLE hrsa_variable_archive ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NULL , + salary_month DATE NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +) +/ + +CREATE TABLE hrsa_variable_archive_item ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + variable_archive_id NUMBER(38,0) NOT NULL, + variable_item_id NUMBER(38,0) NOT NULL, + item_value varchar2(255) NULL , + create_time DATE NOT NULL , + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL , + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +) +/ + + +CREATE TABLE hrsa_variable_item ( + id NUMBER(38,0) NOT NULL , + name varchar2(255) NOT NULL , + code varchar2(255) NOT NULL, + data_type varchar2(20) NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL , + PRIMARY KEY (id) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202408120703.sql b/resource/sqlupgrade/Oracle/sql202408120703.sql new file mode 100644 index 000000000..f38e7b268 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202408120703.sql @@ -0,0 +1,2 @@ +alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409130201.sql b/resource/sqlupgrade/Oracle/sql202409130201.sql new file mode 100644 index 000000000..1462f878d --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) +/ +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409130302.sql b/resource/sqlupgrade/Oracle/sql202409130302.sql new file mode 100644 index 000000000..aa1c20a30 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +/ +Delete from LeftMenuConfig where infoid=100219 +/ +call LMConfig_U_ByInfoInsert (2,100126,0) +/ +call LMInfo_Insert (100219,548025,'','',2,100126,7,2) +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410090103.sql b/resource/sqlupgrade/Oracle/sql202410090103.sql new file mode 100644 index 000000000..c4c7780d7 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410090103.sql @@ -0,0 +1,37 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null +/ +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add department_id NUMBER null +/ +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL +/ +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL +/ +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL +/ +alter table hrsa_bill_detail_temp add status varchar2(200) NULL +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add subcompany_id NUMBER null +/ +alter table hrsa_bill_detail add department_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add department_id NUMBER null +/ +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL +/ +alter table hrsa_bill_detail add jobcall varchar2(200) NULL +/ +alter table hrsa_bill_detail add jobcall_id NUMBER NULL +/ +alter table hrsa_bill_detail add status varchar2(200) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410090203.sql b/resource/sqlupgrade/Oracle/sql202410090203.sql new file mode 100644 index 000000000..27f8f43c6 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410090203.sql @@ -0,0 +1,69 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410100103.sql b/resource/sqlupgrade/Oracle/sql202410100103.sql new file mode 100644 index 000000000..90d5981fd --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410100103.sql @@ -0,0 +1,7 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +) +/ + +update hrsa_acct_result_template set type = 0 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410110103.sql b/resource/sqlupgrade/Oracle/sql202410110103.sql new file mode 100644 index 000000000..554fd4221 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410110103.sql @@ -0,0 +1,12 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410170303.sql b/resource/sqlupgrade/Oracle/sql202410170303.sql new file mode 100644 index 000000000..53cdeed2e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410170303.sql @@ -0,0 +1,2 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410250303.sql b/resource/sqlupgrade/Oracle/sql202410250303.sql new file mode 100644 index 000000000..d70f10dc0 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410250303.sql @@ -0,0 +1,2 @@ +alter table hrsa_salary_acct_emp add account_type NUMBER +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202411060203.sql b/resource/sqlupgrade/Oracle/sql202411060203.sql new file mode 100644 index 000000000..0bd5a59a9 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202411060203.sql @@ -0,0 +1,29 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + template_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202411250103.sql b/resource/sqlupgrade/Oracle/sql202411250103.sql new file mode 100644 index 000000000..81ccb980d --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202411250103.sql @@ -0,0 +1,4 @@ +ALTER TABLE hrsa_page_list_setting add ( + default_setting number +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412030103.sql b/resource/sqlupgrade/Oracle/sql202412030103.sql new file mode 100644 index 000000000..9c8b29ae9 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412030103.sql @@ -0,0 +1,7 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +) +/ + +update hrsa_page_list_template set system_type=0 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412160303.sql b/resource/sqlupgrade/Oracle/sql202412160303.sql new file mode 100644 index 000000000..e5f509f83 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412160303.sql @@ -0,0 +1,127 @@ +create table hrsa_other_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + other_deduction varchar2(50), + remark varchar2(255) +) +/ + + +create table hrsa_health_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + identification_number varchar2(255), + effective_date date, + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50) +) +/ + + + +create table hrsa_grant_donation +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + recipient_name varchar2(255), + tax_code varchar2(255), + donation_number varchar2(255), + donate_date date, + donate_amount varchar2(50), + deduction_proportion varchar2(10), + actual_deduction varchar2(50) +) +/ + + +create table hrsa_endowment_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + account_number varchar2(255), + check_code varchar2(255), + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50), + deduction_month date +) +/ + + +create table hrsa_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + derate_item varchar2(255), + derate_property varchar2(255), + derate_amount varchar2(255) +) +/ + + +create table hrsa_free_income +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + free_item varchar2(255), + free_property varchar2(255), + free_amount varchar2(255) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412160403.sql b/resource/sqlupgrade/Oracle/sql202412160403.sql new file mode 100644 index 000000000..b17420382 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412160403.sql @@ -0,0 +1,12 @@ +alter table hrsa_derate_deduction add employee_type int +/ +alter table hrsa_endowment_insurance add employee_type int +/ +alter table hrsa_free_income add employee_type int +/ +alter table hrsa_grant_donation add employee_type int +/ +alter table hrsa_health_insurance add employee_type int +/ +alter table hrsa_other_derate_deduction add employee_type int +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412230103.sql b/resource/sqlupgrade/Oracle/sql202412230103.sql new file mode 100644 index 000000000..e84bbd88e --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412230103.sql @@ -0,0 +1,24 @@ +create table hrsa_personal_pension +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + voucher_type varchar2(255), + voucher_no varchar2(255), + pay_amount varchar2(255), + data_source int, + collect_source varchar2(50), + pay_month date, + eb_data_id number, + voucher_type_name varchar2(50), + employee_type int +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202412240103.sql b/resource/sqlupgrade/Oracle/sql202412240103.sql new file mode 100644 index 000000000..ca85eff16 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202412240103.sql @@ -0,0 +1,9 @@ +ALTER TABLE hrsa_other_deduction ADD ( + free_income varchar2(255) NULL +) +/ + +ALTER TABLE hrsa_other_deduction ADD ( + derate_deduction varchar2(255) NULL +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202303130202.sql b/resource/sqlupgrade/PG/sql202303130202.sql deleted file mode 100644 index c6ed8b220..000000000 --- a/resource/sqlupgrade/PG/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ -Delete from LeftMenuConfig where infoid=100186; -/ -select LMConfig_U_ByInfoInsert (2,100118,9); -/ -select LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202404251103.sql b/resource/sqlupgrade/PG/sql202404251103.sql new file mode 100644 index 000000000..66ff0a56e --- /dev/null +++ b/resource/sqlupgrade/PG/sql202404251103.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint primary key, + salary_sob_id bigint, + open_approval int, + approval_group_setting text, + workflow_url varchar(500) DEFAULT NULL, + delete_type int, + create_time timestamp, + update_time timestamp, + creator bigint +) +/ + +alter table hrsa_salary_acct_record add approval_id varchar(50) +/ + +alter table hrsa_salary_acct_record add approval_status varchar(50) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202408090103.sql b/resource/sqlupgrade/PG/sql202408090103.sql new file mode 100644 index 000000000..fa8d111f1 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202408090103.sql @@ -0,0 +1,38 @@ +CREATE TABLE hrsa_variable_archive_item ( + id bigint NOT NULL, + employee_id bigint NOT NULL, + variable_archive_id bigint NOT NULL, + variable_item_id bigint NOT NULL, + item_value varchar(255) NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) ; + +CREATE TABLE hrsa_variable_archive ( + id bigint NOT NULL, + employee_id bigint NULL, + salary_month timestamp NULL , + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +); + +CREATE TABLE hrsa_variable_item ( + id bigint NOT NULL, + name varchar(255) NOT NULL, + code varchar(255) NOT NULL, + data_type varchar(20)NULL , + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202408120703.sql b/resource/sqlupgrade/PG/sql202408120703.sql new file mode 100644 index 000000000..c835f6627 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202408120703.sql @@ -0,0 +1 @@ +alter table hrsa_variable_archive add tax_agent_id bigint; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409130201.sql b/resource/sqlupgrade/PG/sql202409130201.sql new file mode 100644 index 000000000..acb55b3a0 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) ; +/ +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=octet_length(labelname) ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=octet_length(labelname) )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409130302.sql b/resource/sqlupgrade/PG/sql202409130302.sql new file mode 100644 index 000000000..70a52cf80 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +; +Delete from LeftMenuConfig where infoid=100219 +; +select LMConfig_U_ByInfoInsert (2,100126,0) +; +select LMInfo_Insert (100219,548025,'','',2,100126,7,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410090103.sql b/resource/sqlupgrade/PG/sql202410090103.sql new file mode 100644 index 000000000..b1954e9d6 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410090203.sql b/resource/sqlupgrade/PG/sql202410090203.sql new file mode 100644 index 000000000..1c23bc156 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410090203.sql @@ -0,0 +1,68 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410100103.sql b/resource/sqlupgrade/PG/sql202410100103.sql new file mode 100644 index 000000000..2deb5e3a5 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410100103.sql @@ -0,0 +1,3 @@ +alter table hrsa_acct_result_template add type int null ; + +update hrsa_acct_result_template set type = 0; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410110103.sql b/resource/sqlupgrade/PG/sql202410110103.sql new file mode 100644 index 000000000..813426c47 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410110103.sql @@ -0,0 +1,11 @@ +create table hrsa_page_list_setting +( + id bigint primary key , + setting text , + page varchar(200), + creator bigint, + create_time timestamp , + update_time timestamp, + delete_type int , + tenant_key varchar(10) +); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410170303.sql b/resource/sqlupgrade/PG/sql202410170303.sql new file mode 100644 index 000000000..deb01bd56 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410170303.sql @@ -0,0 +1 @@ +alter table hrsa_salary_acct_emp add lock_items varchar(4000); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410250303.sql b/resource/sqlupgrade/PG/sql202410250303.sql new file mode 100644 index 000000000..7d8b52851 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410250303.sql @@ -0,0 +1 @@ +alter table hrsa_salary_acct_emp add account_type int; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202411060203.sql b/resource/sqlupgrade/PG/sql202411060203.sql new file mode 100644 index 000000000..21dae6b98 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202411060203.sql @@ -0,0 +1,27 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + template_id bigint, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202411250103.sql b/resource/sqlupgrade/PG/sql202411250103.sql new file mode 100644 index 000000000..def09e4e2 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202411250103.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_page_list_setting ADD COLUMN default_setting int ; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412030103.sql b/resource/sqlupgrade/PG/sql202412030103.sql new file mode 100644 index 000000000..640452d4a --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_page_list_template ADD COLUMN system_type int ; + +update hrsa_page_list_template set system_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412160303.sql b/resource/sqlupgrade/PG/sql202412160303.sql new file mode 100644 index 000000000..214e842a1 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412160303.sql @@ -0,0 +1,125 @@ +create table hrsa_other_derate_deduction +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + other_deduction varchar(50), + remark varchar(255) +); +/ + +create table hrsa_health_insurance +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + identification_number varchar(255), + effective_date date, + year_premium varchar(50), + month_premium varchar(50), + current_deduction varchar(50) +); +/ + + +create table hrsa_grant_donation +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + recipient_name varchar(255), + tax_code varchar(255), + donation_number varchar(255), + donate_date date, + donate_amount varchar(50), + deduction_proportion varchar(10), + actual_deduction varchar(50) +); +/ + + +create table hrsa_endowment_insurance +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + account_number varchar(255), + check_code varchar(255), + year_premium varchar(50), + month_premium varchar(50), + current_deduction varchar(50), + deduction_month date +); +/ + + +create table hrsa_derate_deduction +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + derate_item varchar(255), + derate_property varchar(255), + derate_amount varchar(255) +); +/ + + +create table hrsa_free_income +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + free_item varchar(255), + free_property varchar(255), + free_amount varchar(255) +); +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412160403.sql b/resource/sqlupgrade/PG/sql202412160403.sql new file mode 100644 index 000000000..89d123c70 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412160403.sql @@ -0,0 +1,12 @@ +alter table hrsa_derate_deduction add employee_type int; +/ +alter table hrsa_endowment_insurance add employee_type int; +/ +alter table hrsa_free_income add employee_type int; +/ +alter table hrsa_grant_donation add employee_type int; +/ +alter table hrsa_health_insurance add employee_type int; +/ +alter table hrsa_other_derate_deduction add employee_type int; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412230103.sql b/resource/sqlupgrade/PG/sql202412230103.sql new file mode 100644 index 000000000..9e48e428d --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412230103.sql @@ -0,0 +1,24 @@ +create table hrsa_personal_pension +( + id bigint primary key , + create_time timestamp, + update_time timestamp, + creator bigint, + delete_type int default 0, + tenant_key varchar(10), + main_id bigint, + tax_year_month date, + employee_id bigint, + tax_agent_id bigint, + file_status int, + voucher_type varchar(255), + voucher_no varchar(255), + pay_amount varchar(255), + data_source int, + collect_source varchar(50), + pay_month date, + eb_data_id bigint, + voucher_type_name varchar(50), + employee_type int +); +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202412240103.sql b/resource/sqlupgrade/PG/sql202412240103.sql new file mode 100644 index 000000000..4820d7cee --- /dev/null +++ b/resource/sqlupgrade/PG/sql202412240103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_other_deduction ADD COLUMN free_income varchar(255) NULL; + +ALTER TABLE hrsa_other_deduction ADD COLUMN derate_deduction varchar(255) NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202303130202.sql b/resource/sqlupgrade/SQLServer/sql202303130202.sql deleted file mode 100644 index 9b7bbe305..000000000 --- a/resource/sqlupgrade/SQLServer/sql202303130202.sql +++ /dev/null @@ -1,10 +0,0 @@ -Delete from LeftMenuInfo where id=100186 -GO -Delete from LeftMenuConfig where infoid=100186 -GO -EXECUTE LMConfig_U_ByInfoInsert 2,100118,9 -GO -EXECUTE LMInfo_Insert 100186,541290,'','',2,100118,9,18 -GO -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 -GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202404251103.sql b/resource/sqlupgrade/SQLServer/sql202404251103.sql new file mode 100644 index 000000000..ba5e60f8c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id bigint NOT NULL, + salary_sob_id bigint NOT NULL, + open_approval int NOT NULL, + approval_group_setting text NULL, + workflow_url varchar(500)NULL DEFAULT NULL, + delete_type int NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + creator bigint NOT NULL, + PRIMARY KEY (id) +) +GO + +alter table hrsa_salary_acct_record add approval_id varchar(50) +GO + +alter table hrsa_salary_acct_record add approval_status varchar(50) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202408090103.sql b/resource/sqlupgrade/SQLServer/sql202408090103.sql new file mode 100644 index 000000000..d6c193e59 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202408090103.sql @@ -0,0 +1,41 @@ +CREATE TABLE hrsa_variable_archive_item ( + id bigint NOT NULL, + employee_id bigint NOT NULL, + variable_archive_id bigint NOT NULL, + variable_item_id bigint NOT NULL, + item_value varchar(255) NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) +GO + +CREATE TABLE hrsa_variable_archive ( + id bigint NOT NULL, + employee_id bigint NULL, + salary_month datetime NULL , + create_time datetime NOT NULL, + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) +GO + +CREATE TABLE hrsa_variable_item ( + id bigint NOT NULL, + name varchar(255) NOT NULL, + code varchar(255) NOT NULL, + data_type varchar(20)NULL , + create_time datetime NOT NULL, + update_time datetime NOT NULL, + creator bigint NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NULL, + PRIMARY KEY (id) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202408120703.sql b/resource/sqlupgrade/SQLServer/sql202408120703.sql new file mode 100644 index 000000000..00e88826e --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202408120703.sql @@ -0,0 +1,2 @@ +alter table hrsa_variable_archive add tax_agent_id bigint +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409130201.sql b/resource/sqlupgrade/SQLServer/sql202409130201.sql new file mode 100644 index 000000000..a60fae14e --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409130201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548025 and ( indexdesc is null or indexdesc = '' ) +GO +insert into HtmlLabelIndex(id,indexdesc) select top 1 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( indexdesc is not null and indexdesc <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( labelname is not null and labelname <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is null or labelname = '' or labelname like '%[濆-恙]%' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( labelname is not null and labelname <> '' and labelname not like '%[濆-恙]%' )) +GO +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( labelname is not null and labelname <> '' )) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409130302.sql b/resource/sqlupgrade/SQLServer/sql202409130302.sql new file mode 100644 index 000000000..81608c0b6 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409130302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100219 +GO +Delete from LeftMenuConfig where infoid=100219 +GO +EXECUTE LMConfig_U_ByInfoInsert 2,100126,0 +GO +EXECUTE LMInfo_Insert 100219,548025,'','',2,100126,7,2 +GO +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410090103.sql b/resource/sqlupgrade/SQLServer/sql202410090103.sql new file mode 100644 index 000000000..08a49b2d1 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410090103.sql @@ -0,0 +1,23 @@ +ALTER TABLE hrsa_bill_detail_temp +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO + +ALTER TABLE hrsa_bill_detail +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410090203.sql b/resource/sqlupgrade/SQLServer/sql202410090203.sql new file mode 100644 index 000000000..7a1efdb02 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410090203.sql @@ -0,0 +1,31 @@ +UPDATE hrsa_bill_detail +set department_id = b.departmentId, + department_name = b.departmentName, + subcompany_id = b.subcompanyid, + subcompany_name = b.subcompanyName, + jobtitle_id = b.jobtitleId, + jobtitle_name = b.jobtitleName, + jobcall_id = b.jobcallId, + jobcall = b.jobcall, + status = b.status +FROM hrsa_bill_detail a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId +WHERE a.delete_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410100103.sql b/resource/sqlupgrade/SQLServer/sql202410100103.sql new file mode 100644 index 000000000..f2820af3a --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410100103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_acct_result_template ADD type int NULL +GO + +update hrsa_acct_result_template set type = 0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410110103.sql b/resource/sqlupgrade/SQLServer/sql202410110103.sql new file mode 100644 index 000000000..8a2dae190 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410110103.sql @@ -0,0 +1,12 @@ +create table hrsa_page_list_setting +( + id bigint primary key , + setting ntext , + page varchar(200), + creator bigint, + create_time datetime , + update_time datetime, + delete_type int , + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410170303.sql b/resource/sqlupgrade/SQLServer/sql202410170303.sql new file mode 100644 index 000000000..23c230163 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410170303.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_salary_acct_emp ADD lock_items varchar(4000) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410250303.sql b/resource/sqlupgrade/SQLServer/sql202410250303.sql new file mode 100644 index 000000000..9235eb7dd --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410250303.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_salary_acct_emp ADD account_type int +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202411060203.sql b/resource/sqlupgrade/SQLServer/sql202411060203.sql new file mode 100644 index 000000000..d901127a1 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202411060203.sql @@ -0,0 +1,29 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + template_id bigint, + creator bigint, + create_time datetime, + update_time datetime, + delete_type int, + tenant_key varchar(10) +) +GO + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + creator bigint, + create_time datetime, + update_time datetime, + delete_type int, + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202411250103.sql b/resource/sqlupgrade/SQLServer/sql202411250103.sql new file mode 100644 index 000000000..017545023 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202411250103.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_page_list_setting ADD default_setting int NULL +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412030103.sql b/resource/sqlupgrade/SQLServer/sql202412030103.sql new file mode 100644 index 000000000..1e1d3086c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412030103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_template ADD system_type int NULL +GO + +update hrsa_page_list_template set system_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412160303.sql b/resource/sqlupgrade/SQLServer/sql202412160303.sql new file mode 100644 index 000000000..de7f1091f --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412160303.sql @@ -0,0 +1,126 @@ +create table hrsa_other_derate_deduction +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + other_deduction nvarchar(50), + remark nvarchar(255) +) +GO + + +create table hrsa_health_insurance +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + identification_number nvarchar(255), + effective_date datetime, + year_premium nvarchar(50), + month_premium nvarchar(50), + current_deduction nvarchar(50) +) +GO + + +create table hrsa_grant_donation +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + recipient_name nvarchar(255), + tax_code nvarchar(255), + donation_number nvarchar(255), + donate_date datetime, + donate_amount nvarchar(50), + deduction_proportion nvarchar(10), + actual_deduction nvarchar(50) +) +GO + + +create table hrsa_endowment_insurance +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + account_number nvarchar(255), + check_code nvarchar(255), + year_premium nvarchar(50), + month_premium nvarchar(50), + current_deduction nvarchar(50), + deduction_month datetime +) +GO + + +create table hrsa_derate_deduction +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + derate_item nvarchar(255), + derate_property nvarchar(255), + derate_amount nvarchar(255) +) +GO + + +create table hrsa_free_income +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + free_item nvarchar(255), + free_property nvarchar(255), + free_amount nvarchar(255) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412160403.sql b/resource/sqlupgrade/SQLServer/sql202412160403.sql new file mode 100644 index 000000000..1ebced6cb --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412160403.sql @@ -0,0 +1,12 @@ +alter table hrsa_derate_deduction add employee_type int +GO +alter table hrsa_endowment_insurance add employee_type int +GO +alter table hrsa_free_income add employee_type int +GO +alter table hrsa_grant_donation add employee_type int +GO +alter table hrsa_health_insurance add employee_type int +GO +alter table hrsa_other_derate_deduction add employee_type int +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412230103.sql b/resource/sqlupgrade/SQLServer/sql202412230103.sql new file mode 100644 index 000000000..6fd85b259 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412230103.sql @@ -0,0 +1,24 @@ +create table hrsa_personal_pension +( + id bigint primary key , + create_time datetime, + update_time datetime, + creator bigint, + delete_type int default 0, + tenant_key nvarchar(10), + main_id bigint, + tax_year_month datetime, + employee_id bigint, + tax_agent_id bigint, + file_status int, + voucher_type nvarchar(255), + voucher_no nvarchar(255), + pay_amount nvarchar(255), + data_source int, + collect_source nvarchar(50), + pay_month datetime, + eb_data_id bigint, + voucher_type_name nvarchar(50), + employee_type int +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202412240103.sql b/resource/sqlupgrade/SQLServer/sql202412240103.sql new file mode 100644 index 000000000..cfb59073c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202412240103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_other_deduction ADD free_income varchar(255) NULL +GO + +ALTER TABLE hrsa_other_deduction ADD derate_deduction varchar(255) NULL +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202303130202.sql b/resource/sqlupgrade/ST/sql202303130202.sql deleted file mode 100644 index 9038f9cd1..000000000 --- a/resource/sqlupgrade/ST/sql202303130202.sql +++ /dev/null @@ -1,14 +0,0 @@ -Delete from LeftMenuInfo where id=100186; -/ - -Delete from LeftMenuConfig where infoid=100186; -/ - -call LMConfig_U_ByInfoInsert (2,100118,9); -/ - -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); -/ - -update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; -/ \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202404251103.sql b/resource/sqlupgrade/ST/sql202404251103.sql new file mode 100644 index 000000000..42204eed9 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202404251103.sql @@ -0,0 +1,19 @@ +CREATE TABLE hrsa_salary_approval_rule ( + id NUMBER(38,0) primary key, + salary_sob_id NUMBER(38,0), + open_approval NUMBER, + approval_group_setting clob, + workflow_url varchar2(500) DEFAULT NULL, + delete_type NUMBER, + create_time DATE default sysdate, + update_time DATE default sysdate, + creator NUMBER(38,0) +); +/ + +alter table hrsa_salary_acct_record add approval_id varchar2(50); +/ + +alter table hrsa_salary_acct_record add approval_status varchar2(50); +/ + diff --git a/resource/sqlupgrade/ST/sql202408090103.sql b/resource/sqlupgrade/ST/sql202408090103.sql new file mode 100644 index 000000000..c7f9f1c64 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202408090103.sql @@ -0,0 +1,42 @@ +CREATE TABLE hrsa_variable_archive ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NULL , + salary_month DATE NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_archive_item ( + id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + variable_archive_id NUMBER(38,0) NOT NULL, + variable_item_id NUMBER(38,0) NOT NULL, + item_value varchar2(255) NULL , + create_time DATE NOT NULL , + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL , + tenant_key varchar2(10) NULL, + PRIMARY KEY (id) +); +/ + +CREATE TABLE hrsa_variable_item ( + id NUMBER(38,0) NOT NULL , + name varchar2(255) NOT NULL , + code varchar2(255) NOT NULL, + data_type varchar2(20) NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + creator NUMBER(38,0) NOT NULL, + delete_type int NOT NULL, + tenant_key varchar2(10) NULL , + PRIMARY KEY (id) +); +/ + diff --git a/resource/sqlupgrade/ST/sql202408120703.sql b/resource/sqlupgrade/ST/sql202408120703.sql new file mode 100644 index 000000000..00332785c --- /dev/null +++ b/resource/sqlupgrade/ST/sql202408120703.sql @@ -0,0 +1,3 @@ +alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/ST/sql202409130201.sql b/resource/sqlupgrade/ST/sql202409130201.sql new file mode 100644 index 000000000..ee19534ed --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409130201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548025,'検強方象' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548025 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検強方象' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'Floating Data' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548025 as indexid ,'検' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548025 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/ST/sql202409130302.sql b/resource/sqlupgrade/ST/sql202409130302.sql new file mode 100644 index 000000000..f9f4f825d --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409130302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100219; +/ + +Delete from LeftMenuConfig where infoid=100219; +/ + +call LMConfig_U_ByInfoInsert (2,100126,0); +/ + +call LMInfo_Insert (100219,548025,'','',2,100126,7,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/variableSalary' where id = 100219; +/ + diff --git a/resource/sqlupgrade/ST/sql202410090103.sql b/resource/sqlupgrade/ST/sql202410090103.sql new file mode 100644 index 000000000..69ba04c00 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410090103.sql @@ -0,0 +1,54 @@ +alter table hrsa_bill_detail_temp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add department_id NUMBER null; +/ + +alter table hrsa_bill_detail_temp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail_temp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail_temp add status varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add subcompany_id NUMBER null; +/ + +alter table hrsa_bill_detail add department_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add department_id NUMBER null; +/ + +alter table hrsa_bill_detail add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add jobcall varchar2(200) NULL; +/ + +alter table hrsa_bill_detail add jobcall_id NUMBER NULL; +/ + +alter table hrsa_bill_detail add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/ST/sql202410090203.sql b/resource/sqlupgrade/ST/sql202410090203.sql new file mode 100644 index 000000000..32c3a6712 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410090203.sql @@ -0,0 +1,70 @@ +update hrsa_bill_detail a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/ST/sql202410100103.sql b/resource/sqlupgrade/ST/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/ST/sql202410110103.sql b/resource/sqlupgrade/ST/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/ST/sql202410170303.sql b/resource/sqlupgrade/ST/sql202410170303.sql new file mode 100644 index 000000000..59556ae32 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410170303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL; +/ + diff --git a/resource/sqlupgrade/ST/sql202410250303.sql b/resource/sqlupgrade/ST/sql202410250303.sql new file mode 100644 index 000000000..be178d1f8 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410250303.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_acct_emp add account_type NUMBER; +/ + diff --git a/resource/sqlupgrade/ST/sql202411060203.sql b/resource/sqlupgrade/ST/sql202411060203.sql new file mode 100644 index 000000000..d19f32161 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + template_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/ST/sql202411250103.sql b/resource/sqlupgrade/ST/sql202411250103.sql new file mode 100644 index 000000000..9a56df46d --- /dev/null +++ b/resource/sqlupgrade/ST/sql202411250103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_page_list_setting add ( + default_setting number +); +/ + diff --git a/resource/sqlupgrade/ST/sql202412030103.sql b/resource/sqlupgrade/ST/sql202412030103.sql new file mode 100644 index 000000000..fe020bc74 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412030103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_page_list_template add ( + system_type number +); +/ + +update hrsa_page_list_template set system_type=0; +/ + diff --git a/resource/sqlupgrade/ST/sql202412160303.sql b/resource/sqlupgrade/ST/sql202412160303.sql new file mode 100644 index 000000000..76dc4c94e --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412160303.sql @@ -0,0 +1,122 @@ +create table hrsa_other_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + other_deduction varchar2(50), + remark varchar2(255) +); +/ + +create table hrsa_health_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + identification_number varchar2(255), + effective_date date, + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50) +); +/ + +create table hrsa_grant_donation +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + recipient_name varchar2(255), + tax_code varchar2(255), + donation_number varchar2(255), + donate_date date, + donate_amount varchar2(50), + deduction_proportion varchar2(10), + actual_deduction varchar2(50) +); +/ + +create table hrsa_endowment_insurance +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + account_number varchar2(255), + check_code varchar2(255), + year_premium varchar2(50), + month_premium varchar2(50), + current_deduction varchar2(50), + deduction_month date +); +/ + +create table hrsa_derate_deduction +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + derate_item varchar2(255), + derate_property varchar2(255), + derate_amount varchar2(255) +); +/ + +create table hrsa_free_income +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + free_item varchar2(255), + free_property varchar2(255), + free_amount varchar2(255) +); +/ + diff --git a/resource/sqlupgrade/ST/sql202412160403.sql b/resource/sqlupgrade/ST/sql202412160403.sql new file mode 100644 index 000000000..07a4c3c3b --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412160403.sql @@ -0,0 +1,18 @@ +alter table hrsa_derate_deduction add employee_type int; +/ + +alter table hrsa_endowment_insurance add employee_type int; +/ + +alter table hrsa_free_income add employee_type int; +/ + +alter table hrsa_grant_donation add employee_type int; +/ + +alter table hrsa_health_insurance add employee_type int; +/ + +alter table hrsa_other_derate_deduction add employee_type int; +/ + diff --git a/resource/sqlupgrade/ST/sql202412230103.sql b/resource/sqlupgrade/ST/sql202412230103.sql new file mode 100644 index 000000000..7d3959666 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412230103.sql @@ -0,0 +1,25 @@ +create table hrsa_personal_pension +( + id number primary key , + create_time date, + update_time date, + creator number, + delete_type int default 0, + tenant_key varchar2(10), + main_id number, + tax_year_month date, + employee_id number, + tax_agent_id number, + file_status int, + voucher_type varchar2(255), + voucher_no varchar2(255), + pay_amount varchar2(255), + data_source int, + collect_source varchar2(50), + pay_month date, + eb_data_id number, + voucher_type_name varchar2(50), + employee_type int +); +/ + diff --git a/resource/sqlupgrade/ST/sql202412240103.sql b/resource/sqlupgrade/ST/sql202412240103.sql new file mode 100644 index 000000000..3762c4a0d --- /dev/null +++ b/resource/sqlupgrade/ST/sql202412240103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_other_deduction ADD ( + free_income varchar2(255) NULL +); +/ + +ALTER TABLE hrsa_other_deduction ADD ( + derate_deduction varchar2(255) NULL +); +/ + diff --git a/resource/wiki/篋阪筝篋罅f.sql b/resource/wiki/篋阪筝篋罅f.sql index 75b03ff39..7060a660e 100644 --- a/resource/wiki/篋阪筝篋罅f.sql +++ b/resource/wiki/篋阪筝篋罅f.sql @@ -1,5 +1,9 @@ select id from hrsa_tax_agent_emp -where tax_agent_id =g軸箙>査id and delete_type = 0 and employee_id not in (select employee_id from hrsa_salary_archive where tax_agent_id =g軸箙>査id and delete_type = 0) +where tax_agent_id =g軸箙>査id +and delete_type = 0 +and employee_id not in +(select employee_id from hrsa_salary_archive +where tax_agent_id =g軸箙>査id and delete_type = 0) update hrsa_tax_agent_emp set delete_type = 3 diff --git a/resource/wiki/絽悟ヨ.md b/resource/wiki/絽悟ヨ.md index 13ba2242f..637ebc08f 100644 --- a/resource/wiki/絽悟ヨ.md +++ b/resource/wiki/絽悟ヨ.md @@ -10,6 +10,14 @@ left join hrsa_tax_agent agent on agent.id=sob.tax_agent_id and agent.delete_typ left join hrmresource e on e.id= result.employee_id +select e.lastname, record.salary_month as 莎, item.name as 莎蕁 ,result.result_value as +from hrsa_salary_acct_record record +left join hrsa_salary_acct_result result on record.id = result.salary_acct_record_id and result.delete_type = 0 and record.delete_type = 0 +left join hrsa_salary_item item on result.salary_item_id = item.id and item.delete_type = 0 +left join hrmresource e on e.id= result.employee_id +where item.name = '綏ヨ莅' + + # キ罅f篆≧ select i.item_value from hrsa_salary_archive_item i @@ -17,5 +25,5 @@ left join hrmresource e on e.id= result.employee_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軸箙>査腱 - c.name='堺綏ヨ' order by effective_time desc \ No newline at end of file + and a.employee_id=篋阪id and t.name=g軸箙>査腱 + and c.name='堺綏ヨ' order by effective_time desc \ No newline at end of file diff --git a/resource/wiki/絮/hrmSalaryCustom.properties b/resource/wiki/絮/hrmSalaryCustom.properties index 5816696a3..9d6a1e623 100644 --- a/resource/wiki/絮/hrmSalaryCustom.properties +++ b/resource/wiki/絮/hrmSalaryCustom.properties @@ -1,3 +1,4 @@ formulaRunOvertimeThreshold=10 +personNumberInOneThread = 100 flowNoticeMessageType=2022060951 -salaryDateFormat=yyyy-MM \ No newline at end of file +salaryDateFormat=yyyy-MM diff --git a/src/com/api/salary/web/VariableArchiveController.java b/src/com/api/salary/web/VariableArchiveController.java new file mode 100644 index 000000000..ccf82cd89 --- /dev/null +++ b/src/com/api/salary/web/VariableArchiveController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/variableSalary") +public class VariableArchiveController extends com.engine.salary.web.VariableArchiveController { + +} diff --git a/src/com/api/salary/web/VariableItemController.java b/src/com/api/salary/web/VariableItemController.java new file mode 100644 index 000000000..6c3063aea --- /dev/null +++ b/src/com/api/salary/web/VariableItemController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/variableSalaryItem") +public class VariableItemController extends com.engine.salary.web.VariableItemController { + +} diff --git a/src/com/engine/salary/action/BatEditSalaryExcelAction.java b/src/com/engine/salary/action/BatEditSalaryExcelAction.java index e0cbf422d..386066608 100644 --- a/src/com/engine/salary/action/BatEditSalaryExcelAction.java +++ b/src/com/engine/salary/action/BatEditSalaryExcelAction.java @@ -46,6 +46,17 @@ public class BatEditSalaryExcelAction implements Action { this.operatorField = operatorField; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -54,6 +65,11 @@ public class BatEditSalaryExcelAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } String docId = fieldMap.get(batSalaryExcelField); if (StringUtils.isBlank(docId)) { log.error("拷顖罍ラ篁id筝null"); diff --git a/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java index f1d6f2aec..b08132f05 100644 --- a/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java +++ b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java @@ -47,6 +47,17 @@ public class CheckBatEditSalaryExcelAction implements Action { this.operatorField = operatorField; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -54,6 +65,11 @@ public class CheckBatEditSalaryExcelAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } String docId = fieldMap.get(batSalaryExcelField); if (StringUtils.isBlank(docId)) { log.error("拷顖罍ラ篁id筝null"); diff --git a/src/com/engine/salary/action/CheckEditSIArchiveAction.java b/src/com/engine/salary/action/CheckEditSIArchiveAction.java index f4f8d9165..2a0bbccb7 100644 --- a/src/com/engine/salary/action/CheckEditSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckEditSIArchiveAction.java @@ -7,6 +7,7 @@ import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -42,6 +43,17 @@ public class CheckEditSIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -49,6 +61,11 @@ public class CheckEditSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckEditSalaryAction.java b/src/com/engine/salary/action/CheckEditSalaryAction.java index 7cee919f3..f8c2dcb75 100644 --- a/src/com/engine/salary/action/CheckEditSalaryAction.java +++ b/src/com/engine/salary/action/CheckEditSalaryAction.java @@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.wrapper.SalaryArchiveWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -38,6 +39,17 @@ public class CheckEditSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -46,7 +58,11 @@ public class CheckEditSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); - + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckInitSalaryAction.java b/src/com/engine/salary/action/CheckInitSalaryAction.java index 34dd5782a..157ecab8a 100644 --- a/src/com/engine/salary/action/CheckInitSalaryAction.java +++ b/src/com/engine/salary/action/CheckInitSalaryAction.java @@ -60,6 +60,17 @@ public class CheckInitSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -68,6 +79,11 @@ public class CheckInitSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java b/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java index 786d4c863..6adfa8299 100644 --- a/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/CheckStayAddToPaySIArchiveAction.java @@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -49,6 +50,17 @@ public class CheckStayAddToPaySIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -57,6 +69,12 @@ public class CheckStayAddToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } + RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java index a89df0ad4..ef816fbd8 100644 --- a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java @@ -9,6 +9,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -49,6 +50,17 @@ public class CheckStayDelToStopSIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -57,6 +69,11 @@ public class CheckStayDelToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CheckStopSalaryAction.java b/src/com/engine/salary/action/CheckStopSalaryAction.java index f4cdc0fb2..78b3c0a7c 100644 --- a/src/com/engine/salary/action/CheckStopSalaryAction.java +++ b/src/com/engine/salary/action/CheckStopSalaryAction.java @@ -54,6 +54,17 @@ public class CheckStopSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -62,6 +73,11 @@ public class CheckStopSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/CopyToPaySIArchiveAction.java b/src/com/engine/salary/action/CopyToPaySIArchiveAction.java index 2fcfb6596..8f0421c71 100644 --- a/src/com/engine/salary/action/CopyToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/CopyToPaySIArchiveAction.java @@ -11,6 +11,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -18,7 +19,10 @@ import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -47,6 +51,17 @@ public class CopyToPaySIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -54,6 +69,11 @@ public class CopyToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditSIArchiveAction.java b/src/com/engine/salary/action/EditSIArchiveAction.java index 7f5678632..f211e58c2 100644 --- a/src/com/engine/salary/action/EditSIArchiveAction.java +++ b/src/com/engine/salary/action/EditSIArchiveAction.java @@ -42,6 +42,17 @@ public class EditSIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -49,6 +60,11 @@ public class EditSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditSalaryAction.java b/src/com/engine/salary/action/EditSalaryAction.java index eed5d1648..3c8dd5446 100644 --- a/src/com/engine/salary/action/EditSalaryAction.java +++ b/src/com/engine/salary/action/EditSalaryAction.java @@ -6,6 +6,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.wrapper.SalaryArchiveWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -38,6 +39,17 @@ public class EditSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -46,7 +58,11 @@ public class EditSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); - + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditToPaySIArchiveAction.java b/src/com/engine/salary/action/EditToPaySIArchiveAction.java index c736f9698..31259e94a 100644 --- a/src/com/engine/salary/action/EditToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/EditToPaySIArchiveAction.java @@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -59,6 +60,17 @@ public class EditToPaySIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -66,6 +78,11 @@ public class EditToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/EditToStopSIArchiveAction.java b/src/com/engine/salary/action/EditToStopSIArchiveAction.java index 80b16ab93..1f2a612fd 100644 --- a/src/com/engine/salary/action/EditToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/EditToStopSIArchiveAction.java @@ -15,6 +15,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -59,6 +60,17 @@ public class EditToStopSIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -66,6 +78,11 @@ public class EditToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/InitSalaryAction.java b/src/com/engine/salary/action/InitSalaryAction.java index 3593dcb9b..af3ab875e 100644 --- a/src/com/engine/salary/action/InitSalaryAction.java +++ b/src/com/engine/salary/action/InitSalaryAction.java @@ -52,6 +52,9 @@ public class InitSalaryAction implements Action { private String tableName; + private String archiveStatus; + + public String getTableName() { return tableName; } @@ -60,6 +63,17 @@ public class InitSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -67,6 +81,11 @@ public class InitSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; @@ -132,6 +151,10 @@ public class InitSalaryAction implements Action { .importDatas(importData) .build(); + if (StringUtils.isNotBlank(archiveStatus) && archiveStatus.equals(SalaryArchiveStatusEnum.PENDING.getValue())) { + build.setKeepStatus(true); + } + //篏篋 String uid = importDataMap.getOrDefault("篏篋", "1").toString(); Map map = getSalaryArchiveWrapper(new User(Integer.parseInt(uid))).importSalaryArchiveInit(build); diff --git a/src/com/engine/salary/action/RehireAction.java b/src/com/engine/salary/action/RehireAction.java index ac236b54a..f0ac107f3 100644 --- a/src/com/engine/salary/action/RehireAction.java +++ b/src/com/engine/salary/action/RehireAction.java @@ -70,6 +70,17 @@ public class RehireAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -78,6 +89,12 @@ public class RehireAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } + RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; @@ -107,7 +124,7 @@ public class RehireAction implements Action { Long taxAgentId = taxAgentPOS.get(0).getId(); Long employeeId = Long.valueOf(empIdStr); List salaryArchivePOS = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentId(taxAgentId).employeeId(employeeId).build()); - if (CollectionUtils.isEmpty(salaryArchivePOS)){ + if (CollectionUtils.isEmpty(salaryArchivePOS) || salaryArchivePOS.get(0).getRunStatus().equals(SalaryArchiveStatusEnum.PENDING.getValue())){ // 贋・莎医action罅f InitSalaryAction initSalaryAction = new InitSalaryAction(); return initSalaryAction.doSalaryArchiveInit(requestInfo, salaryFieldMap); diff --git a/src/com/engine/salary/action/SendSalaryAction.java b/src/com/engine/salary/action/SendSalaryAction.java index f0f3ef154..39705e5c2 100644 --- a/src/com/engine/salary/action/SendSalaryAction.java +++ b/src/com/engine/salary/action/SendSalaryAction.java @@ -65,12 +65,30 @@ public class SendSalaryAction implements Action { */ private String sendBy; + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { Property[] properties = requestInfo.getMainTableInfo().getProperty(); Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } + String idStr = fieldMap.get(idFieldName); if (StringUtils.isBlank(idStr)) { requestInfo.getRequestManager().setMessage("悟莅医id綏ヨid筝巡減腥"); diff --git a/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java index c0bc0c0b0..371bdd8ee 100644 --- a/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java @@ -12,6 +12,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -54,6 +55,17 @@ public class StayAddToPaySIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -62,6 +74,11 @@ public class StayAddToPaySIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; diff --git a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java index 1c75d42c0..b715b9eea 100644 --- a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java @@ -5,17 +5,16 @@ import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; -import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.SIArchivesService; import com.engine.salary.service.impl.SIArchivesServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -57,6 +56,17 @@ public class StayDelToStopSIArchiveAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -65,6 +75,11 @@ public class StayDelToStopSIArchiveAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; @@ -89,11 +104,24 @@ public class StayDelToStopSIArchiveAction implements Action { Long employeeId = Long.valueOf(importDataMap.getOrDefault("綏id", "-1").toString()); String payEndYearMonth = importDataMap.getOrDefault("膽雁些", "").toString(); + // 絋Ŭ筝筝膽雁些鐚 篁h;腓鞘腱銀篏睡筝筝膽雁些 + String fundEndYearMonth = importDataMap.getOrDefault("腱膽雁些", "").toString(); + String otherEndYearMonth = importDataMap.getOrDefault("銀胼膽雁些", "").toString(); if (StrUtil.isNotBlank(payEndYearMonth) && !SalaryDateUtil.checkYearMonth(payEndYearMonth)) { requestInfo.getRequestManager().setMessage("膽雁些弱莚鐚罩g`弱霚坂筝'2021-01'"); return FAILURE_AND_CONTINUE; } + if (StrUtil.isNotBlank(fundEndYearMonth) && !SalaryDateUtil.checkYearMonth(fundEndYearMonth)) { + requestInfo.getRequestManager().setMessage("腱膽雁些弱莚鐚罩g`弱霚坂筝'2021-01'"); + return FAILURE_AND_CONTINUE; + } + + if (StrUtil.isNotBlank(otherEndYearMonth) && !SalaryDateUtil.checkYearMonth(otherEndYearMonth)) { + requestInfo.getRequestManager().setMessage("銀胼膽雁些弱莚鐚罩g`弱霚坂筝'2021-01'"); + return FAILURE_AND_CONTINUE; + } + //篏篋 String uid = importDataMap.getOrDefault("篏篋","1").toString(); User user = new User(Integer.parseInt(uid)); @@ -111,7 +139,7 @@ public class StayDelToStopSIArchiveAction implements Action { if (StrUtil.isBlank(payEndYearMonth)) { resultMap = getSIArchivesService(user).stayDelToStop(Collections.singletonList(insuranceArchivesBaseInfoPO.getId())); } else { - resultMap = getSIArchivesService(user).stopWithoutLimit(Collections.singletonList(insuranceArchivesBaseInfoPO.getId()), payEndYearMonth); + resultMap = getSIArchivesService(user).stopWithoutLimit(Collections.singletonList(insuranceArchivesBaseInfoPO.getId()), payEndYearMonth, fundEndYearMonth, otherEndYearMonth); } if (resultMap.get("type").toString().equals("fail")) { requestInfo.getRequestManager().setMessage(resultMap.get("msg").toString()); diff --git a/src/com/engine/salary/action/StopSalaryAction.java b/src/com/engine/salary/action/StopSalaryAction.java index 7eafe84bb..6433e4e95 100644 --- a/src/com/engine/salary/action/StopSalaryAction.java +++ b/src/com/engine/salary/action/StopSalaryAction.java @@ -60,6 +60,17 @@ public class StopSalaryAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -68,6 +79,11 @@ public class StopSalaryAction implements Action { Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } RecordSet rs = new RecordSet(); diff --git a/src/com/engine/salary/action/UpdateSISchemeDetailAction.java b/src/com/engine/salary/action/UpdateSISchemeDetailAction.java index 0d406455a..91c93c377 100644 --- a/src/com/engine/salary/action/UpdateSISchemeDetailAction.java +++ b/src/com/engine/salary/action/UpdateSISchemeDetailAction.java @@ -55,12 +55,32 @@ public class UpdateSISchemeDetailAction implements Action { this.tableName = tableName; } + // цaction絖罧, 0篁h;筝ц鐚銀篁h;ц + private String enableField; + + public String getEnableField() { + return enableField; + } + + public void setEnableField(String enableField) { + this.enableField = enableField; + } + @Override public String execute(RequestInfo requestInfo) { try { RequestManager requestManager = requestInfo.getRequestManager(); User user = requestManager.getUser(); + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + String enable = fieldMap.get(enableField); + if (StringUtils.isNotBlank(enable) && enable.equals("0")) { + // 筝цaction + return SUCCESS; + } + DetailTable[] detailTables = requestInfo.getDetailTableInfo().getDetailTable(); List> detailList = new ArrayList<>(); if (detailTables.length > 0) { diff --git a/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java b/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java new file mode 100644 index 000000000..14e613881 --- /dev/null +++ b/src/com/engine/salary/action/updateSalaryApprovalStatusAction.java @@ -0,0 +1,78 @@ +package com.engine.salary.action; + +import cn.hutool.core.util.NumberUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; +import com.engine.salary.service.SalaryAcctRecordService; +import com.engine.salary.service.impl.SalaryAcctRecordServiceImpl; +import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName updateSalaryApprovalStatusAction + * @author Harryxzy + * @date 2024/4/24 15:44 + * @description 莊域莎悟絎≧合倶 + */ +@Slf4j +public class updateSalaryApprovalStatusAction implements Action { + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalaryAcctRecordMapper getSalaryAcctRecordMapper() { + return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class); + } + + + // 莅医莎悟莅医id絖罧 + private String salaryAcctRecordIdField; + + // 篆剛減絲劫倶 + private String status; + + @Override + public String execute(RequestInfo requestInfo) { + try { + if (StringUtils.isEmpty(salaryAcctRecordIdField)) { + requestInfo.getRequestManager().setMessage("莎悟莅医id絖罧灸巡減腥"); + return FAILURE_AND_CONTINUE; + } + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + String salaryAcctRecordId = fieldMap.get(salaryAcctRecordIdField); + if (!NumberUtil.isNumber(salaryAcctRecordId)) { + requestInfo.getRequestManager().setMessage("悟莅医id筝筝堺医"); + return FAILURE_AND_CONTINUE; + } + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(Long.valueOf(salaryAcctRecordId)); + if (salaryAcctRecordPO == null) { + requestInfo.getRequestManager().setMessage("悟莅医筝絖綏画←"); + return FAILURE_AND_CONTINUE; + } + salaryAcctRecordPO.setApprovalStatus(status); + getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO); + } catch (Exception e) { + log.error("絎≧合倶贋医け茣", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 46abbf098..9b2bbb180 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -517,7 +517,7 @@ public class SIAccountBiz extends Service { //筝贋区;井ュ if (CollectionUtils.isNotEmpty(list)) { encryptUtil.encryptList(list, InsuranceAccountDetailTempPO.class); - List> lists = splitList(list, 40); + List> lists = splitList(list, 20); lists.forEach(subList -> { getSIAccountDetailTempMapper().batchSaveAccountTempDetails(subList); }); diff --git a/src/com/engine/salary/constant/SalaryItemConstant.java b/src/com/engine/salary/constant/SalaryItemConstant.java index 8ce846f43..e54e684f7 100644 --- a/src/com/engine/salary/constant/SalaryItemConstant.java +++ b/src/com/engine/salary/constant/SalaryItemConstant.java @@ -15,6 +15,11 @@ public class SalaryItemConstant { */ public static final String DYNAMIC_SUFFIX = "_salaryItem"; + /** + * 茵筝羌莎蕁合膽莚 + */ + public static final String VARIABLE_ITEM_DYNAMIC_SUFFIX = "_variableItem"; + /** * 莎悟絲弱ョ絖茵紊翫罧key */ diff --git a/src/com/engine/salary/encrypt/AESEncryptUtil.java b/src/com/engine/salary/encrypt/AESEncryptUtil.java index 4ec7f60de..99d68d106 100644 --- a/src/com/engine/salary/encrypt/AESEncryptUtil.java +++ b/src/com/engine/salary/encrypt/AESEncryptUtil.java @@ -20,6 +20,8 @@ public class AESEncryptUtil { static String aesEncryptScrect = bb.getPropValue("hrmSalary", "AESEncryptScrect"); + static String aes4SalaryBillEncryptScrect = "OETEP8JBA1C8IH721C1513AE82IFPE5"; + /** * AES絲 * @@ -34,6 +36,31 @@ public class AESEncryptUtil { return source; } + /** + * 綏ヨィ-綏id絲 + * @param source + * @return + */ + public static String encrypt4SalaryBill(String source) { + //我√紮井銀罨≦絲 + if (StringUtils.isNotBlank(source) && !source.startsWith(SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT)) { + return SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT + AES.encrypt(source, aes4SalaryBillEncryptScrect); + } + return source; + } + + public static String decrypt4SalaryBill(String encryptStr) { + if (StringUtils.isNotBlank(encryptStr)) { + if (encryptStr.startsWith(SalarySysConstant.SALARY_BILL_PRE_SIGN_ENCRYPT)) { + encryptStr = encryptStr.substring(4, encryptStr.length()); + return AES.decrypt(encryptStr, aes4SalaryBillEncryptScrect); + } else { + return ""; + } + } + return encryptStr; + } + /** * AES茹e diff --git a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java index a4ce08bb3..9203785c0 100644 --- a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java +++ b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java @@ -114,6 +114,17 @@ public class DataCollectionEmployee { @SalaryFormulaVar(defaultLabel = "莚篁九埇", labelId = 98624, dataType = "string") private String idNo; + + @SalaryFormulaVar(defaultLabel = "茣埇瓜", labelId = 98622, dataType = "string") + private String accountTypeName; + + /** + * 茣埇瓜 + * 0/null鐚筝肢侃 1鐚罨∴侃 + */ + @SalaryFormulaVar(defaultLabel = "茣埇瓜膽", labelId = 98622, dataType = "string") + private Integer accountType; + //膤紫膊∞ private Boolean isAdmin; diff --git a/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java b/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java index 144ed4c0e..5b67306ca 100644 --- a/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java +++ b/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java @@ -36,6 +36,10 @@ public class AttendQuoteDataBO { continue; } String key = field.getCode(); + //弱劫阪ょ罨∞key + if(key.startsWith("attendanceSerial_")){ + key = key.replace("attendanceSerial_", ""); + } if (m.containsKey(key)) { Map map = new LinkedHashMap<>(); map.put("employeeId", m.get("resourceId")); diff --git a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveBO.java b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveBO.java new file mode 100644 index 000000000..f9d8345c8 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveBO.java @@ -0,0 +1,281 @@ +package com.engine.salary.entity.datacollection.bo; + +import com.cloudstore.eccom.constant.WeaBoolAttr; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.constant.SalaryItemConstant; +import com.engine.salary.entity.datacollection.po.VariableItemPO; +import com.engine.salary.util.SalaryI18nUtil; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: 羌莎罅f + * @Author: xzy + */ +public class VariableArchiveBO { + + @Override + public String toString() { + return "SalaryArchiveBO{}"; + } + + + + /** + * 綮肴;弱 + * + * @param variableItems + */ + public static List buildVariableArchiveTable(List variableItems) { + // 茵取;紊 + List columns = new ArrayList<>(); + WeaTableColumn idColumn = new WeaTableColumn("100px", "id", "id"); + idColumn.setIsPrimarykey(WeaBoolAttr.TRUE); + idColumn.setDisplay(WeaBoolAttr.FALSE); + columns.add(idColumn); + WeaTableColumn employeeIdColumn = new WeaTableColumn("100px", "篋阪篆≧茵筝脂id", "employeeId"); + employeeIdColumn.setDisplay(WeaBoolAttr.FALSE); + columns.add(employeeIdColumn); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "莎絮"), "salaryMonth")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "筝腮g軸箙>査"), "taxAgentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "紮"), "username")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, ""), "departmentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "阪"), "mobile")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "綏ュ"), "workcode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "莚篁九埇"), "idNo")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "ヨユ"), "companystartdate")); + for (VariableItemPO variableItem : variableItems) { + columns.add(new WeaTableColumn("100px", variableItem.getName(), variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX)); + } + + return columns; + } + +// /** +// * 綮肴莎罅f井 +// * +// * @param salaryArchiveList +// * @param salaryArchiveItemDataList +// * @param localDateRange +// * @param allEmployeeIds +// * @param isOnlyTaxAgent +// * @return +// */ +// public static List buildSalaryArchiveData(List salaryArchiveList, +// List salaryArchiveItemDataList, +// LocalDateRange localDateRange, +// List allEmployeeIds, +// boolean isOnlyTaxAgent) { +// // 綣紮ユ +// Date start = localDateRange.getFromDate(); +// // 膸ユ +// Date end = localDateRange.getEndDate(); +// +// List list = new ArrayList<>(); +// allEmployeeIds.forEach(e -> { +// // 筝筝篋榊罅f井 +// 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<>(); +// // 筝腮g軸箙>査ユ狗贋球 +// 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.setSalarySobIds(salaryArchiveSobList.stream().filter(sob->sob.getSalaryArchiveId().equals(salaryArchive.getId())).map(SalaryArchiveSobPO::getSalarySobId).distinct().collect(Collectors.toList())); +// taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start) ? start : fromDate)).endDate(endDate == null || endDate.after(end) ? end : endDate).build()); +// // 莎蕁合井筝腮g軸箙>査 +// if (!isOnlyTaxAgent) { +// // 綣紮ユ +// Date startItem = taxAgent.getEffectiveDateRange().getFromDate(); +// // 膸ユ +// Date endItem = taxAgent.getEffectiveDateRange().getEndDate(); +// Date endTempItem = endItem; +// List salaryItemValues = new ArrayList<>(); +// for (Long salaryArchiveItemId : salaryArchiveItemIds) { +// boolean flag = false; +// for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) { +// if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId()) || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchive.getId())) { +// continue; +// } +// Date fromDateItem = salaryArchiveItem.getEffectiveTime(); +// if (fromDateItem.after(endTempItem) || endTempItem.before(startItem)) { +// continue; +// } +// if (endTempItem.equals(startItem) && flag) { +// continue; +// } +// SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); +// salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem) ? startItem : fromDateItem)).endDate(endTempItem).build()); +// salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId()); +// salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue()); +// salaryItemValues.add(salaryArchiveItemData); +// flag = true; +// endTempItem = fromDateItem; +// } +// endTempItem = endItem; +// } +// taxAgent.setSalaryItemValues(salaryItemValues); +// } +// taxAgents.add(taxAgent); +// } +// } +// salaryArchiveData.setTaxAgents(taxAgents); +// list.add(salaryArchiveData); +// }); +// +// return list; +// } +// +// /** +// * 綮阪井 +// * +// * @param taxAgentEmpChangeList +// * @param salaryArchiveList +// * @param salaryArchiveItemList +// * @param currentEmployeeId +// */ +// public static ChangeData buildChangeData(List taxAgentEmpChangeList, List salaryArchiveList, List salaryArchiveItemList, Long currentEmployeeId) { +// List changeIds = taxAgentEmpChangeList.stream().map(TaxAgentEmpChangePO::getId).collect(Collectors.toList()); +// // 号筝腮g軸箙>査篋阪篁ュ紜靏糸膸 +// Map changeTypeMap = taxAgentEmpChangeList.stream().collect(Collectors.groupingBy(change -> change.getTaxAgentId() + "-" + change.getEmployeeId() + "-" + change.getChangeType(), Collectors.counting())); +// // 蕁阪莉 +// Collections.reverse(taxAgentEmpChangeList); +// // サ +// taxAgentEmpChangeList = taxAgentEmpChangeList.stream() +// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getTaxAgentId() + "-" + f.getEmployeeId()))), ArrayList::new)); +// List taxAgentEmpChanges = taxAgentEmpChangeList +// .stream() +// // 筝悟篆鐚綽順 +// .filter(change -> !Objects.equals(changeTypeMap.get(change.getTaxAgentId() + "-" + change.getEmployeeId() + "-" + TaxAgentEmpChangeTypeEnum.ADD.getValue()) +// , changeTypeMap.get(change.getTaxAgentId() + "-" + change.getEmployeeId() + "-" + TaxAgentEmpChangeTypeEnum.DEL.getValue()))) +// .collect(Collectors.toList()); +// +// Date now = new Date(); +// Date today = new Date(); +// List stopStatus = Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()); +// List salaryArchiveAddTodoList = Lists.newArrayList(); +// List salaryArchiveUpdateTodoList = Lists.newArrayList(); +// List salaryArchiveItemAddTodos = Lists.newArrayList(); +// +// Map salaryArchiveListMap = SalaryEntityUtil.convert2Map(salaryArchiveList, k -> k.getTaxAgentId() + "-" + k.getEmployeeId()); +// taxAgentEmpChanges.forEach(change -> { +// SalaryArchivePO salaryArchive = salaryArchiveListMap.get(change.getTaxAgentId() + "-" + change.getEmployeeId()); +// // 絋医 莚贋鐚絋羃≧罅f鐚医鐚絋罅f筝鐚絨掩医絎筝鐚篁ヤ肩腮g軸箙>査篋阪idゆ筝 +// if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.ADD.getValue()) { +// if (salaryArchive != null) { +// // 筝莊喝緇絎鐚篁a莪b莪a鐚ゅ荀 +// if (stopStatus.contains(salaryArchive.getRunStatus())) { +// // 莊喝緇絎 +// salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// salaryArchive.setPayStartDate(today); +// salaryArchive.setPayEndDate(null); +// } +// salaryArchiveUpdateTodoList.add(salaryArchive); +// // 緇医絨沿紊倶亥莎蕁合 +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// // 決亥莎蕁合井 +// List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(salaryArchive.getId())).collect(Collectors.toList()); +// salaryArchiveItemValuelList.forEach(i -> { +// salaryArchiveItemAddTodos.add(SalaryArchiveItemPO.builder() +// .id(IdGenerator.generate()) +// .salaryArchiveId(salaryArchive.getId()) +// .employeeId(salaryArchive.getEmployeeId()) +// .effectiveTime(today) +// .adjustReason(SalaryArchiveItemAdjustReasonEnum.INIT.getValue()) +// .salaryItemId(i.getSalaryItemId()) +// .itemValue(i.getItemValue()) +// .description("") +// // 筝莅丞舟篏篋 +// .operateTime(now) +// .createTime(now) +// .updateTime(now) +// .creator(currentEmployeeId) +// .deleteType(NumberUtils.INTEGER_ZERO) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build()); +// }); +// } +// } +// } else { +// salaryArchiveAddTodoList.add(SalaryArchivePO.builder() +// .id(IdGenerator.generate()) +// .employeeId(change.getEmployeeId()) +// .taxAgentId(change.getTaxAgentId()) +// .employeeType(change.getEmployeeType()) +// .runStatus(SalaryArchiveStatusEnum.PENDING.getValue()) +// // .incomeCategory(IncomeCategoryEnum.WAGES_AND_SALARIES.getValue()) +// // .modifier(0L) +// .createTime(now) +// .updateTime(now) +// .creator(currentEmployeeId) +// .deleteType(NumberUtils.INTEGER_ZERO) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build()); +// } +// // 絋 莚贋鐚絋罅f綛銀絎茵紊鐚羃≧。罅筝膊 +// } else if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.DEL.getValue()) { +// if (salaryArchive != null) { +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.FIXED.getValue())) { +// // 莊喝医 +// salaryArchive.setRunStatus(SalaryArchiveStatusEnum.SUSPEND.getValue()); +// // salaryArchive.setPayEndDate(today); +// salaryArchiveUpdateTodoList.add(salaryArchive); +// } else if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.PENDING.getValue())) { +// // 莊喝医 +// salaryArchive.setRunStatus(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue()); +// salaryArchiveUpdateTodoList.add(salaryArchive); +// } +// } +// } +// }); +// +// return ChangeData.builder() +// .salaryArchiveAddTodoList(salaryArchiveAddTodoList) +// .salaryArchiveUpdateTodoList(salaryArchiveUpdateTodoList) +// .salaryArchiveItemAddTodos(salaryArchiveItemAddTodos) +// .changeIds(changeIds) +// .build(); +// } +// +// @Data +// @Builder +// @NoArgsConstructor +// @AllArgsConstructor +// public static class ChangeData { +// +// /** +// * 拷鋓壕莎罅f +// */ +// private List salaryArchiveAddTodoList; +// +// /** +// * 拷医莎罅f +// */ +// private List salaryArchiveUpdateTodoList; +// +// /** +// * 遵紊莎蕁合 +// */ +// private List salaryArchiveItemAddTodos; +// +// /** +// * ゅ井 +// */ +// private List changeIds; +// } + +} diff --git a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java new file mode 100644 index 000000000..313ddc1d4 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java @@ -0,0 +1,315 @@ +package com.engine.salary.entity.datacollection.bo; + +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryArchiveConstant; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandleParam; +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.enums.UserStatusEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * @Description: 羌莎罅f-excel + * @Author: xzy + * @Date: 2024-08-08 10:51 + */ +public class VariableArchiveExcelBO extends Service { + + public static String userNameI18n; + public static String departmentI18n; + public static String jobNumI18n; + public static String hrStatusI18n; + public static String repeatMsg; + public static String taxAgentI18n; + public static String taxAgentRangeMsg; + public static String empRepeatMsg; + + public static String notEmptyI18n; + + public static String incomeCategoryI18n; + public static String salarySobI18n; + public static String effectiveTimeI18n; + public static String payStartDateI18n; + public static String payEndDateI18n; + public static String adjustReasonI18n; + public static String listTypeErrMsg; + public static String taxAgentNoExist; + public static String incomeCategoryNoExist; + public static String currSalarySobI18n; + public static String noExist; + public static String effectiveTimeErr; + public static String adjustReasonNoExist; + public static String dateErr; + public static String payStartUnableAfterEnd; + + public static String salaryItemNoBeforeCurrentEffectiveTime; + public static String salaryItemAdjustNoSame; + public static String salaryItemAdjustNoSameIneffective; + + public static String salaryArchiveErr; + public static String numberErr; + + /** + * 紮i18n + */ + public static void initI18n() { + userNameI18n = SalaryI18nUtil.getI18nLabel(85429, "紮"); + departmentI18n = SalaryI18nUtil.getI18nLabel(86185, ""); + jobNumI18n = SalaryI18nUtil.getI18nLabel(86317, "綏ュ"); + hrStatusI18n = SalaryI18nUtil.getI18nLabel(109332, "篋坂倶"); + repeatMsg = "[" + Joiner.on(",").join(new List[]{Arrays.asList(userNameI18n, departmentI18n, jobNumI18n, hrStatusI18n)}) + "]"; + taxAgentI18n = SalaryI18nUtil.getI18nLabel(86184, "筝腮g軸箙>査"); + taxAgentRangeMsg = SalaryI18nUtil.getI18nLabel(132633, "莚ュ綏ヤ莚ヤ肩腮g軸箙>査篋阪岩賢") + "," + SalaryI18nUtil.getI18nLabel(127308, "莚傑") + repeatMsg; + empRepeatMsg = SalaryI18nUtil.getI18nLabel(121899, "綏ヤ拭紊鐚莚傑") + repeatMsg; + + notEmptyI18n = SalaryI18nUtil.getI18nLabel(100577, "筝巡減腥"); + + incomeCategoryI18n = SalaryI18nUtil.getI18nLabel(121908, "九ユ緇蕁合"); + salarySobI18n = SalaryI18nUtil.getI18nLabel(87889, "莎茣絅"); + effectiveTimeI18n = SalaryI18nUtil.getI18nLabel(85904, "ユ"); + payStartDateI18n = SalaryI18nUtil.getI18nLabel(109527, "莎桁ユ"); + payEndDateI18n = SalaryI18nUtil.getI18nLabel(109329, "ユ"); + adjustReasonI18n = SalaryI18nUtil.getI18nLabel(85431, "莪翫"); + + listTypeErrMsg = SalaryI18nUtil.getI18nLabel(115527, "莚ユ≧井筝膃綵茵絲弱ヨ羆銀茵絖莚ユ。罅鐚筝絲弱"); + + taxAgentNoExist = SalaryI18nUtil.getI18nLabel(100545, "筝腮g軸箙>査筝絖"); + incomeCategoryNoExist = SalaryI18nUtil.getI18nLabel(121923, "九ユ緇蕁合筝絖"); + + currSalarySobI18n = SalaryI18nUtil.getI18nLabel(127213, "莚ユ九ユ緇蕁合"); + noExist = SalaryI18nUtil.getI18nLabel(127236, "筝絖"); + + effectiveTimeErr = SalaryI18nUtil.getI18nLabel(102497, "ユ莚弱鋇罩g`鐚罩g`弱霚坂筝'2022-01-01''2022/1/1'"); + adjustReasonNoExist = SalaryI18nUtil.getI18nLabel(100591, "莪翫筝絖"); + + dateErr = SalaryI18nUtil.getI18nLabel(109819, "ユ莚弱鋇罩g`鐚罩g`弱霚坂筝'2022-01-01''2022/1/1'"); + + payStartUnableAfterEnd = SalaryI18nUtil.getI18nLabel(109214, "莎桁ユ筝篋"); + + salaryItemNoBeforeCurrentEffectiveTime = SalaryI18nUtil.getI18nLabel(100429, "ユ筝篋綵綏牙莪贋ユ"); + salaryItemAdjustNoSame = SalaryI18nUtil.getI18nLabel(100432, "莪翫筝後"); + salaryItemAdjustNoSameIneffective = SalaryI18nUtil.getI18nLabel(100434, "筝莪翫筝後"); + + salaryArchiveErr = SalaryI18nUtil.getI18nLabel(101723, "莚ュ綏ョ莎罅f莅医莚鐚莚傑"); + numberErr = SalaryI18nUtil.getI18nLabel(100581, "莚決ユ医"); + + } + + + /** + * ♂茵井 + * + * @param map + * @param headers + * @param excelComments + * @param errorCount + * @param importHandleParam + * @return + */ + public static boolean singleRowCheck(List allTodoVariableArchives, + Map map, + List headers, + List> excelComments, + int errorCount, + VariableArchiveImportHandleParam importHandleParam, + User user) { + + boolean isError = false; + String rowindex = "膃" + map.get("index") + "茵"; + // 1.紮 + String userName = Optional.ofNullable(map.get(userNameI18n)).orElse("").toString(); + String deparmentName = Optional.ofNullable(map.get(departmentI18n)).orElse("").toString(); + String mobileName = Optional.ofNullable(map.get("阪")).orElse("").toString(); + String workcode = Optional.ofNullable(map.get("綏ュ")).orElse("").toString(); + String idNo = Optional.ofNullable(map.get("莚篁九埇")).orElse("").toString(); + + String validType = importHandleParam.getEmpValidType(); + List emps = new ArrayList<>(); + if ("0".equals(validType)) { + //0篁h;紮++阪埇拷鐚1篁h;綏ュ垬減筝拷 + emps = importHandleParam.getEmployees().stream().filter(e -> + (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) + && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) + && (StringUtils.isBlank(mobileName) || Objects.equals(e.getMobile(), mobileName))).collect(Collectors.toList()); + } else if ("1".equals(validType)) { + emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(workcode) || Objects.equals(e.getWorkcode(), workcode))) + .collect(Collectors.toList()); + } + else if ("2".equals(validType)) { + emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(idNo) || Objects.equals(e.getIdNo(), idNo))) + .collect(Collectors.toList()); + } + + List employeeSameIds = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); + } + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 && employeeSameIds.get(0) > 0 ? employeeSameIds.get(0) : null; + + if (employeeId == null) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "ユ鞘査紊沿乾鐚莚欠`絎紮阪垽g`筝筝"); + excelComments.add(errorMessageMap); + isError = true; + return isError; + } + + // 筝腮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(); + if (!optionalTaxAgent.isPresent()) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "筝腮g軸箙>査筝絖鐚筝翫"); + excelComments.add(errorMessageMap); + isError = true; + return isError; + } + Long taxAgentId = optionalTaxAgent.get().getTaxAgentId(); + map.put("taxAgentId", taxAgentId); + + // 篋紮絲弱ユ井♂ + map.put("employeeId", employeeId); + String repeatKey = optionalTaxAgent.get().getTaxAgentId() + "-" + employeeId.toString(); + if (allTodoVariableArchives.contains(repeatKey)) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "絖紊井"); + excelComments.add(errorMessageMap); + isError = true; + return isError; + } else { + allTodoVariableArchives.add(repeatKey); + } + + // 綮肴莎罅f + VariableArchivePO finalVariableArchive = buildVariableArchive(employeeId, taxAgentId, importHandleParam); + map.put("variableArchiveId", finalVariableArchive.getId()); + List needDelArchiveItemIds = new ArrayList<>(); + for (int j = 0; j < headers.size(); j++) { + String header = headers.get(j); + Object key = header; + if (key == null) { + continue; + } + String cellVal = Optional.ofNullable(map.get(key.toString())).orElse("").toString(); + + + boolean isNotEmpty = StringUtils.isNotEmpty(cellVal); + // 1.紮紊 + if (isNotEmpty && userNameI18n.equals(key.toString())) { + if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + header + empRepeatMsg); + excelComments.add(errorMessageMap); + isError = true; + } + } else { + // 羌莎蕁合井 + if (!isError) { + Optional optionalVariableItem = importHandleParam.getVariableItems().stream().filter(e -> Util.formatMultiLang(e.getName(), String.valueOf(user.getLanguage())).equals(key)).findFirst(); + + if (optionalVariableItem.isPresent()) { + VariableItemPO variableItemPO = optionalVariableItem.get(); + // 医主瓜ゆ + boolean isNotNumber = variableItemPO.getDataType().equals(SalaryArchiveFieldTypeEnum.NUMBER.getValue()) && StringUtils.isNotEmpty(cellVal) && !Pattern.matches(SalaryArchiveConstant.NUMBER_REGEX, cellVal); + if (isNotNumber) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + key + numberErr); + excelComments.add(errorMessageMap); + isError = true; + } + Long variableItemId = variableItemPO.getId(); + // 綏牙 + List effectiveList = Optional.ofNullable(importHandleParam.getEffectiveItemListMap().get(finalVariableArchive.getId() + "-" + variableItemId)).orElse(Lists.newArrayList()); + // ゅ医 + needDelArchiveItemIds.addAll(effectiveList.stream().map(VariableArchiveItemPO::getId).collect(Collectors.toList())); + + // 絲弱ユ銀荀紊蕁合 + boolean isInitNull = CollectionUtils.isEmpty(effectiveList) && StringUtils.isEmpty(cellVal); + if (!isError && !isInitNull && StringUtils.isNotBlank(cellVal)) { + importHandleParam.getVariableArchiveItemSaves().add(VariableArchiveItemPO.builder() + .id(IdGenerator.generate()) + .employeeId(finalVariableArchive.getEmployeeId()) + .variableArchiveId(finalVariableArchive.getId()) + .variableItemId(variableItemId) + .itemValue(cellVal) + .creator(importHandleParam.getCurrentEmployeeId()) + .createTime(importHandleParam.getNowTime()) + .updateTime(importHandleParam.getNowTime()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + } + } + } + } + } + + // 絋綵♂茵羃♂蘂,篆壕儀紮ユ膸ユ膈 + if (isError) { + // 絨∽兄絅順井膸菴羯ゆ + importHandleParam.setVariableArchiveSaves(importHandleParam.getVariableArchiveSaves().stream().filter(f -> !finalVariableArchive.getId().equals(f.getId())).collect(Collectors.toList())); + importHandleParam.setVariableArchiveItemSaves(importHandleParam.getVariableArchiveItemSaves().stream().filter(f -> !finalVariableArchive.getId().equals(f.getVariableArchiveId())).collect(Collectors.toList())); + } else { + importHandleParam.getVariableArchiveItemDelSalaryItemIds().addAll(needDelArchiveItemIds); + } + + return isError; + } + + + /** + * 綮堺貴莎罅f絲壕院 + * + * @param employeeId + * @param taxAgentId + * @param importHandleParam + * @return + */ + public static VariableArchivePO buildVariableArchive(Long employeeId, Long taxAgentId, VariableArchiveImportHandleParam importHandleParam) { + VariableArchivePO variableArchivePO = importHandleParam.getVariableArchivesMap().get(taxAgentId + "-" + employeeId); + if (variableArchivePO == null) { + // 医羌罅f + variableArchivePO = VariableArchivePO.builder() + .id(IdGenerator.generate()) + .employeeId(employeeId) + .taxAgentId(taxAgentId) + .salaryMonth(importHandleParam.getSalaryMonthDate()) + .createTime(importHandleParam.getNowTime()) + .updateTime(importHandleParam.getNowTime()) + .creator(importHandleParam.getCurrentEmployeeId()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + importHandleParam.getVariableArchiveSaves().add(variableArchivePO); + } + return variableArchivePO; + } + + + @Override + public String toString() { + return "SalaryArchiveExcelBO{}"; + } +} diff --git a/src/com/engine/salary/entity/datacollection/dto/DerateDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/DerateDeductionListDTO.java new file mode 100644 index 000000000..c0751492b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/DerateDeductionListDTO.java @@ -0,0 +1,104 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 腮蘂 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DerateDeductionListDTO { + + private Long id; + + private Long mainId; + + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + + private Long employeeId; + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @ExcelProperty(index = 5) + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + private String idNo; + + + @ExcelProperty(index = 6) + @TableTitle(title = "篋蕁", dataIndex = "derateItem", key = "derateItem") + private String derateItem; + + @ExcelProperty(index = 7) + @TableTitle(title = "ц寒", dataIndex = "derateProperty", key = "derateProperty") + @ElogTransform(name = "ц寒") + private String derateProperty; + + @ExcelProperty(index = 8) + @TableTitle(title = "蘂", dataIndex = "derateAmount", key = "derateAmount") + @ElogTransform(name = "蘂") + private String derateAmount; + + + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java b/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java new file mode 100644 index 000000000..4b48e20bc --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java @@ -0,0 +1,112 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 腮綮九肢篆 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EndowmentInsuranceListDTO { + + private Long id; + + private Long mainId; + + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + + private Long employeeId; + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @ExcelProperty(index = 5) + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + private String idNo; + + @ExcelProperty(index = 6) + @TableTitle(title = "恰ユiゆ篁", dataIndex = "deductionMonth", key = "deductionMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date deductionMonth; + + @ExcelProperty(index = 7) + @TableTitle(title = "腮綮九肢茣欠", dataIndex = "accountNumber", key = "accountNumber") + private String accountNumber; + + @ExcelProperty(index = 8) + @TableTitle(title = "ョ♂", dataIndex = "checkCode", key = "checkCode") + private String checkCode; + + @ExcelProperty(index = 9) + @TableTitle(title = "綛翫墾篆茣", dataIndex = "yearPremium", key = "yearPremium") + private String yearPremium; + + @ExcelProperty(index = 10) + @TableTitle(title = "綺篆茣", dataIndex = "monthPremium", key = "monthPremium") + private String monthPremium; + + @ExcelProperty(index = 11) + @TableTitle(title = "iら蘂", dataIndex = "currentDeduction", key = "currentDeduction") + private String currentDeduction; + + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/FreeIncomeListDTO.java b/src/com/engine/salary/entity/datacollection/dto/FreeIncomeListDTO.java new file mode 100644 index 000000000..698dcbde0 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/FreeIncomeListDTO.java @@ -0,0 +1,102 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.Encrypt; +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 腮九 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FreeIncomeListDTO { + + private Long id; + + private Long mainId; + + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + + private Long employeeId; + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @ExcelProperty(index = 5) + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + private String idNo; + + + @ExcelProperty(index = 6) + @TableTitle(title = "腮篋蕁", dataIndex = "freeItem", key = "freeItem") + private String freeItem; + + @ExcelProperty(index = 7) + @TableTitle(title = "腮ц寒", dataIndex = "freeProperty", key = "freeProperty") + private String freeProperty; + + @ExcelProperty(index = 8) + @TableTitle(title = "腮蘂", dataIndex = "freeAmount", key = "freeAmount") + @Encrypt + private String freeAmount; + + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java b/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java new file mode 100644 index 000000000..f38aa7181 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java @@ -0,0 +1,124 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.SalaryTableColumn; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 篋iょ莎蘂 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GrantDonationListDTO { + + private Long id; + + private Long mainId; + + + private Long employeeId; + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @SalaryTableColumn(text = "紮", width = "10%", column = "username") + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @SalaryTableColumn(text = "筝腮g軸箙>査", width = "10%", column = "taxAgentName") + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + // + @SalaryTableColumn(text = "", width = "10%", column = "departmentName") + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @SalaryTableColumn(text = "阪", width = "10%", column = "mobile") + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @SalaryTableColumn(text = "綏ュ", width = "10%", column = "jobNum") + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @SalaryTableColumn(text = "莚篁九埇", width = "10%", column = "idNo") + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + @ExcelProperty(index = 5) + private String idNo; + + + @ExcelProperty(index = 6) + @TableTitle(title = "莎篏腱", dataIndex = "recipientName", key = "recipientName") + private String recipientName; + + @ExcelProperty(index = 7) + @TableTitle(title = "莎篏膾括篋肴", dataIndex = "taxCode", key = "taxCode") + private String taxCode; + + @ExcelProperty(index = 8) + @TableTitle(title = "莎莚", dataIndex = "donationNumber", key = "donationNumber") + private String donationNumber; + + @ExcelProperty(index = 9) + @TableTitle(title = "莎ユ", dataIndex = "donateDate", key = "donateDate") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date donateDate; + + @ExcelProperty(index = 10) + @TableTitle(title = "莎蘂", dataIndex = "donateAmount", key = "donateAmount") + private String donateAmount; + + @ExcelProperty(index = 11) + @TableTitle(title = "iゆ箴", dataIndex = "deductionProportion", key = "deductionProportion") + private String deductionProportion; + + @ExcelProperty(index = 12) + @TableTitle(title = "絎iら蘂", dataIndex = "actualDeduction", key = "actualDeduction") + private String actualDeduction; + + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java b/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java new file mode 100644 index 000000000..890682379 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java @@ -0,0 +1,110 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.SalaryTableColumn; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 筝ュ嵯篆 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HealthInsuranceListDTO { + + private Long id; + + private Long mainId; + + + private Long employeeId; + + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @SalaryTableColumn(text = "莚篁九埇", width = "10%", column = "idNo") + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + @ExcelProperty(index = 5) + private String idNo; + + @ExcelProperty(index = 6) + @TableTitle(title = "腮篌莚", dataIndex = "identificationNumber", key = "identificationNumber") + private String identificationNumber; + + @ExcelProperty(index = 7) + @TableTitle(title = "篆ユ", dataIndex = "effectiveDate", key = "effectiveDate") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date effectiveDate; + + @ExcelProperty(index = 8) + @TableTitle(title = "綛翫墾篆茣", dataIndex = "yearPremium", key = "yearPremium") + private String yearPremium; + + @ExcelProperty(index = 9) + @TableTitle(title = "綺篆茣", dataIndex = "monthPremium", key = "monthPremium") + private String monthPremium; + + @ExcelProperty(index = 10) + @TableTitle(title = "iら蘂", dataIndex = "currentDeduction", key = "currentDeduction") + private String currentDeduction; + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java index 94f3580d0..9f214d8a7 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java @@ -82,27 +82,31 @@ public class OtherDeductionListDTO { @TableTitle(title = "ヨユ", dataIndex = "hiredate", key = "hiredate") private String hiredate; - //筝ュ嵯篆 + /** + * 腮九 + */ @ExcelProperty(index = 7) + @SalaryTableColumn(text = "腮九", width = "10%", column = "freeIncome") + @TableTitle(title = "腮九", dataIndex = "freeIncome", key = "freeIncome") + @Encrypt + private String freeIncome; + + + + //筝ュ嵯篆 + @ExcelProperty(index = 8) @SalaryTableColumn(text = "筝ュ嵯篆", width = "10%", column = "businessHealthyInsurance") @TableTitle(title = "筝ュ嵯篆", dataIndex = "businessHealthyInsurance", key = "businessHealthyInsurance") @Encrypt private String businessHealthyInsurance; //腮綮九肢篆 - @ExcelProperty(index = 8) + @ExcelProperty(index = 9) @SalaryTableColumn(text = "腮綮九肢篆", width = "10%", column = "taxDelayEndowmentInsurance") @TableTitle(title = "腮綮九肢篆", dataIndex = "taxDelayEndowmentInsurance", key = "taxDelayEndowmentInsurance") @Encrypt private String taxDelayEndowmentInsurance; - //銀 - @ExcelProperty(index = 9) - @SalaryTableColumn(text = "銀", width = "10%", column = "otherDeduction") - @TableTitle(title = "銀", dataIndex = "otherDeduction", key = "otherDeduction") - @Encrypt - private String otherDeduction; - //篋iょ莎蘂 @ExcelProperty(index = 10) @SalaryTableColumn(text = "篋iょ莎蘂", width = "10%", column = "deductionAllowedDonation") @@ -110,7 +114,23 @@ public class OtherDeductionListDTO { @Encrypt private String deductionAllowedDonation; + /** + * 腮蘂 + */ @ExcelProperty(index = 11) + @SalaryTableColumn(text = "腮蘂", width = "10%", column = "derateDeduction") + @TableTitle(title = "腮蘂", dataIndex = "derateDeduction", key = "derateDeduction") + @Encrypt + private String derateDeduction; + + //銀 + @ExcelProperty(index = 12) + @SalaryTableColumn(text = "銀", width = "10%", column = "otherDeduction") + @TableTitle(title = "銀", dataIndex = "otherDeduction", key = "otherDeduction") + @Encrypt + private String otherDeduction; + + @ExcelProperty(index = 13) @SalaryTableColumn(text = "筝篋阪肢", width = "10%", column = "privatePension") @TableTitle(title = "筝篋阪肢", dataIndex = "privatePension", key = "privatePension") @Encrypt diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java index 5cdbec166..7f5290520 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java @@ -47,6 +47,7 @@ public class OtherDeductionRecordDTO { @SalaryTableColumn(text = "筝腮g軸箙>査", width = "10%", column = "taxAgentName") @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") private String taxAgentName; + /** * 筝腮g軸箙>査id */ @@ -70,6 +71,18 @@ public class OtherDeductionRecordDTO { @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") private String jobNum; + //腮九 + @SalaryTableColumn(text = "腮九", width = "10%", column = "freeIncome") + @TableTitle(title = "腮九", dataIndex = "freeIncome", key = "freeIncome") + @Encrypt + private String freeIncome; + + //腮蘂 + @SalaryTableColumn(text = "腮蘂", width = "10%", column = "derateDeduction") + @TableTitle(title = "腮蘂", dataIndex = "derateDeduction", key = "derateDeduction") + @Encrypt + private String derateDeduction; + //筝ュ嵯篆 @SalaryTableColumn(text = "筝ュ嵯篆", width = "10%", column = "businessHealthyInsurance") @TableTitle(title = "筝ュ嵯篆", dataIndex = "businessHealthyInsurance", key = "businessHealthyInsurance") diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDerateDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDerateDeductionListDTO.java new file mode 100644 index 000000000..d4d292a14 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDerateDeductionListDTO.java @@ -0,0 +1,97 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.SalaryTableColumn; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OtherDerateDeductionListDTO { + + private Long id; + + private Long mainId; + + + private Long employeeId; + + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @SalaryTableColumn(text = "莚篁九埇", width = "10%", column = "idNo") + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + @ExcelProperty(index = 5) + private String idNo; + + @ExcelProperty(index = 6) + @TableTitle(title = "腮蘂", dataIndex = "otherDeduction", key = "otherDeduction") + private String otherDeduction; + + @ExcelProperty(index = 7) + @TableTitle(title = "紊羈", dataIndex = "remark", key = "remark") + private String remark; + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/PersonalPensionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/PersonalPensionListDTO.java new file mode 100644 index 000000000..d4f28e78b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/PersonalPensionListDTO.java @@ -0,0 +1,133 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.enums.datacollection.EnumDeductionDataSource; +import com.engine.salary.util.excel.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀腮i-筝篋阪肢 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_personal_pension +//銀腮i-筝篋阪肢 +public class PersonalPensionListDTO { + + private Long id; + + private Long mainId; + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + + private Long employeeId; + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + @TableTitle(title = "腮罨丈絮", dataIndex = "taxYearMonth", key = "taxYearMonth") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") + private Date taxYearMonth; + + //紮 + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @ExcelProperty(index = 0) + @I18n + private String username; + + //筝腮g軸箙>査 + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @ExcelProperty(index = 1) + private String taxAgentName; + + // + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @ExcelProperty(index = 2) + @I18n + private String departmentName; + + //阪 + @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") + @ExcelProperty(index = 3) + private String mobile; + + //綏ュ + @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") + @ExcelProperty(index = 4) + private String jobNum; + + //莚篁九埇 + @ExcelProperty(index = 5) + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + private String idNo; + + + //膽頑換綺 + private Date payMonth; + + //莚膠糸 + private Integer voucherType; + + //莚膠糸腱 + @ExcelProperty(index = 6) + @TableTitle(title = "莚膠糸", dataIndex = "voucherTypeName", key = "voucherTypeName") + private String voucherTypeName; + + //莚膽 + @ExcelProperty(index = 7) + @TableTitle(title = "莚膽", dataIndex = "voucherNo", key = "voucherNo") + private String voucherNo; + + //膽頑換蘂 + @ExcelProperty(index = 8) + @TableTitle(title = "膽頑換蘂", dataIndex = "payAmount", key = "payAmount") + private String payAmount; + + //綵罅g倶 0綵罅 1綏峨罅 + private Integer fileStatus; + + /** + * @see EnumDeductionDataSource + */ + //井ユ + private Integer dataSource; + + //ユ + private String collectSource; + + //綮堺狗 + private Date createTime; + + //贋井狗 + private Date updateTime; + + //綮坂査 + private Long creator; + + + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") + private String operate; + +} diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveItemDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveItemDTO.java new file mode 100644 index 000000000..f672cf27b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveItemDTO.java @@ -0,0 +1,33 @@ +package com.engine.salary.entity.datacollection.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 羌罅f膸 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableArchiveItemDTO { + + private Long id; + + /** + * 羌蕁合id + */ + private Long variableItemId; + + /** + * 羌 + */ + private String itemValue; +} diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java new file mode 100644 index 000000000..6d5905390 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java @@ -0,0 +1,99 @@ +package com.engine.salary.entity.datacollection.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.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 羌莎罅f茵 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@SalaryTable(pageId = "bd985583-f84j-p2aj-p288-2hw3hosy6r6,", tableType = WeaTableType.CHECKBOX) +public class VariableArchiveListDTO { + + @TableTitle(title = "id", dataIndex = "id", key = "id") + private Long id; + + @TableTitle(title = "篋阪篆≧茵筝脂id", dataIndex = "employeeId", key = "employeeId") + private Long employeeId; + + private Date salaryMonth; + + /** + * 筝腮g軸箙>査 + */ + @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") + @I18n + private String taxAgentName; + + /** + * 筝腮g軸箙>査id + */ + private Long taxAgentId; + + /** + * 紮 + */ + @TableTitle(title = "紮", dataIndex = "username", key = "username") + @I18n + private String username; + + /** + * + */ + @TableTitle(title = "", dataIndex = "subcompanyName", key = "subcompanyName") + @I18n + private String subcompanyName; + + /** + * + */ + @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") + @I18n + private String departmentName; + + /** + * 笈 + */ + @TableTitle(title = "笈", dataIndex = "mobile", key = "mobile") + private String mobile; + + + /** + * 綏ュ + */ + @TableTitle(title = "綏ュ", dataIndex = "workcode", key = "workcode") + private String workcode; + + /** + * 莚篁九埇 + */ + @TableTitle(title = "莚篁九埇", dataIndex = "idNo", key = "idNo") + private String idNo; + + /** + * ヨユ + */ + private String companystartdate; + + /** + * 胼肢ユ + */ + private String dismissdate; + +} diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableItemListDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableItemListDTO.java new file mode 100644 index 000000000..dc38ca99b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/dto/VariableItemListDTO.java @@ -0,0 +1,37 @@ +package com.engine.salary.entity.datacollection.dto; + +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 羌莎蕁合茵 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableItemListDTO { + + @TableTitle(title = "id", dataIndex = "id", key = "id") + private Long id; + + @TableTitle(title = "蕁合腱", dataIndex = "name", key = "name") + private String name; + + @TableTitle(title = "絖罧窮瓜", dataIndex = "dataType", key = "dataType") + private String dataType; + + /** + * + */ + private boolean canDelete; + +} diff --git a/src/com/engine/salary/entity/datacollection/param/AddUpDeductionMonthTaxAgentParam.java b/src/com/engine/salary/entity/datacollection/param/AddUpDeductionMonthTaxAgentParam.java index b22d0fd84..e09c0a7e1 100644 --- a/src/com/engine/salary/entity/datacollection/param/AddUpDeductionMonthTaxAgentParam.java +++ b/src/com/engine/salary/entity/datacollection/param/AddUpDeductionMonthTaxAgentParam.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; +import java.util.List; /** * 井-膣莅>蕁拷篁+g軸筝私 @@ -24,4 +25,6 @@ public class AddUpDeductionMonthTaxAgentParam { @ApiModelProperty("筝腮g軸箙>査筝脂id") private Long taxAgentId; + @ApiModelProperty("筝腮g軸箙>査筝脂id") + private List taxAgentIds; } diff --git a/src/com/engine/salary/entity/datacollection/param/DerateDeductionSaveParam.java b/src/com/engine/salary/entity/datacollection/param/DerateDeductionSaveParam.java new file mode 100644 index 000000000..cd70723d3 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/DerateDeductionSaveParam.java @@ -0,0 +1,37 @@ +package com.engine.salary.entity.datacollection.param; + +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 +//hrsa_derate_deduction +//銀腮i-腮蘂 +public class DerateDeductionSaveParam { + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + //篋蕁 + private String derateItem; + + //ц寒 + private String derateProperty; + + //蘂 + private String derateAmount; +} diff --git a/src/com/engine/salary/entity/datacollection/param/EndowmentInsuranceSaveParam.java b/src/com/engine/salary/entity/datacollection/param/EndowmentInsuranceSaveParam.java new file mode 100644 index 000000000..f86c8603b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/EndowmentInsuranceSaveParam.java @@ -0,0 +1,54 @@ +package com.engine.salary.entity.datacollection.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 腮綮九肢篆 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_endowment_insurance +//銀腮i-腮綮九肢篆 +public class EndowmentInsuranceSaveParam { + + //筝脂 + private Long id; + + //筝肢;井Id + private Long mainId; + + + //恰ユiゆ篁 + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date deductionMonth; + + //腮綮九肢茣欠 + private String accountNumber; + + //ョ♂ + private String checkCode; + + //綛翫墾篆茣 + private String yearPremium; + + //綺篆茣 + private String monthPremium; + + //iら蘂 + private String currentDeduction; + + +} diff --git a/src/com/engine/salary/entity/datacollection/param/FreeIncomeSaveParam.java b/src/com/engine/salary/entity/datacollection/param/FreeIncomeSaveParam.java new file mode 100644 index 000000000..216f2e3a5 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/FreeIncomeSaveParam.java @@ -0,0 +1,38 @@ +package com.engine.salary.entity.datacollection.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 銀腮i-腮九ヨ; + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_free_income +//銀腮i-腮九 +public class FreeIncomeSaveParam { + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + + //腮篋蕁 + private String freeItem; + + //腮ц寒 + private String freeProperty; + + //腮蘂 + private String freeAmount; +} diff --git a/src/com/engine/salary/entity/datacollection/param/GrantDonationSaveParam.java b/src/com/engine/salary/entity/datacollection/param/GrantDonationSaveParam.java new file mode 100644 index 000000000..ec98e212b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/GrantDonationSaveParam.java @@ -0,0 +1,51 @@ +package com.engine.salary.entity.datacollection.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀腮i-篋iょ莎蘂 + * + * @author chengliming + * @date 2023-06-09 15:03:45 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_grant_donation +//銀腮i-篋iょ莎蘂 +public class GrantDonationSaveParam { + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + + //莎篏腱 + private String recipientName; + + //莎篏膾括篋肴 + private String taxCode; + + //莎莚 + private String donationNumber; + + //莎ユ + private Date donateDate; + + //莎蘂 + private String donateAmount; + + //iゆ箴 + private String deductionProportion; + + //絎iら蘂 + private String actualDeduction; + +} diff --git a/src/com/engine/salary/entity/datacollection/param/HealthInsuranceSaveParam.java b/src/com/engine/salary/entity/datacollection/param/HealthInsuranceSaveParam.java new file mode 100644 index 000000000..13c8a9030 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/HealthInsuranceSaveParam.java @@ -0,0 +1,46 @@ +package com.engine.salary.entity.datacollection.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 筝ュ嵯篆 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_health_insurance +//銀腮i-筝ュ嵯篆茵 +public class HealthInsuranceSaveParam { + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + + //腮篌莚 + private String identificationNumber; + + //篆ユ + private Date effectiveDate; + + //綛翫墾篆茣 + private String yearPremium; + + //綺篆茣 + private String monthPremium; + + //iら蘂 + private String currentDeduction; +} diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailDeleteParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailDeleteParam.java new file mode 100644 index 000000000..447c04b87 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailDeleteParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.datacollection.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * ゅ + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OtherDeductionDetailDeleteParam { + + // 筝脂id + private List ids; +} diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailQueryParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailQueryParam.java new file mode 100644 index 000000000..e849daaa9 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionDetailQueryParam.java @@ -0,0 +1,33 @@ +package com.engine.salary.entity.datacollection.param; + +import com.engine.salary.common.BaseQueryParam; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀腮iわ茵ヨ√茵 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OtherDeductionDetailQueryParam extends BaseQueryParam { + + private Long id; + + + private Long employeeId; + private Long taxAgentId; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date taxCycle; +} diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java new file mode 100644 index 000000000..9b0a07212 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.datacollection.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀腮iわ茵ヨ√茵 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OtherDeductionFreeListQueryParam{ + + @DataCheck(require = true, message = "g軸箙>査id筝榊") + private Long taxAgentId; + + @DataCheck(require = true, message = "腮罨丈絮筝榊") + private Date taxCycle; + +} diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionImportParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionImportParam.java index 3ac3a98c9..509f3f7cc 100644 --- a/src/com/engine/salary/entity/datacollection/param/OtherDeductionImportParam.java +++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionImportParam.java @@ -24,8 +24,4 @@ public class OtherDeductionImportParam { //腮罨丈絮 String declareMonth; - - //筝腮g軸箙>査 - String taxAgentId; - } diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionParam.java index 06311ed20..d615856f7 100644 --- a/src/com/engine/salary/entity/datacollection/param/OtherDeductionParam.java +++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionParam.java @@ -44,6 +44,16 @@ public class OtherDeductionParam { // 綏ュ private String jobNum; + /** + * 腮九 + */ + private String freeIncome; + + /** + * 腮蘂 + */ + private String derateDeduction; + // 筝ュ嵯篆 private String businessHealthyInsurance; diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDerateDeductionSaveParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDerateDeductionSaveParam.java new file mode 100644 index 000000000..ab4114d6e --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/OtherDerateDeductionSaveParam.java @@ -0,0 +1,35 @@ +package com.engine.salary.entity.datacollection.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 銀腮i-銀 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_other_derate_deduction +//銀腮i-銀 +public class OtherDerateDeductionSaveParam { + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + + //腮蘂 + private String otherDeduction; + + //紊羈 + private String remark; +} diff --git a/src/com/engine/salary/entity/datacollection/param/PersonalPensionSaveParam.java b/src/com/engine/salary/entity/datacollection/param/PersonalPensionSaveParam.java new file mode 100644 index 000000000..ecd0f92c5 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/PersonalPensionSaveParam.java @@ -0,0 +1,65 @@ +package com.engine.salary.entity.datacollection.param; + +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.enums.datacollection.EnumDeductionDataSource; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 銀腮i-筝篋阪肢 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_personal_pension +//銀腮i-筝篋阪肢 +public class PersonalPensionSaveParam { + + //筝脂id + private Long id; + + //筝肢;井Id + private Long mainId; + + //膽頑換綺 + private Date payMonth; + + //莚膠糸 + private Integer voucherType; + + //莚膠糸腱 + private String voucherTypeName; + + //莚膽 + private String voucherNo; + + //膽頑換蘂 + private String payAmount; + + + /** + * 篋阪膠糸 + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + + /** + * 井ユ + * @see EnumDeductionDataSource + */ + private Integer dataSource; + + //ユ + private String collectSource; + +} diff --git a/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java new file mode 100644 index 000000000..ab12ad1a0 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java @@ -0,0 +1,104 @@ +package com.engine.salary.entity.datacollection.param; + +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 lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 井-羌絲弱ュ + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableArchiveImportHandleParam { + + // 筝篌篁id + String imageId; + + // 莎絮 + String salaryMonth; + + Date salaryMonthDate; + + // --------------------------- + Long currentEmployeeId; + + String tenantKey; + + /** + * 篋阪薨莚劫 + */ + String empValidType; + + /** + * キ腱隙篋阪 + */ + List employees; + + /** + * キ茴綣羌莎蕁合 + */ + List variableItems; + + /** + * ヨ√群羌莎罅f堺井 + */ + Map variableArchivesMap; + + /** + * 羌莎蕁合id + */ + Collection variableItemIds; + + /** + * ヨ√群羌莎蕁合井 + */ + Map> effectiveItemListMap; + + /** + * キ筝腮g軸箙>査 + */ + Collection taxAgentList; + + /** + * 綵狗 + */ + Date nowTime = new Date(); + + /** + * 綵紊 + */ + Date today = new Date(); + + /** + * 緇篆絖羌莎罅f + */ + List variableArchiveSaves; + + /** + * 緇篆絖羌莎罅f-羌莎蕁合 + */ + List variableArchiveItemSaves; + + /** + * 緇ゆ貴莎罅f-羌莎蕁合 + */ + List variableArchiveItemDelSalaryItemIds; +} diff --git a/src/com/engine/salary/entity/datacollection/param/VariableArchiveQueryParam.java b/src/com/engine/salary/entity/datacollection/param/VariableArchiveQueryParam.java new file mode 100644 index 000000000..aec1d0f83 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/VariableArchiveQueryParam.java @@ -0,0 +1,52 @@ +package com.engine.salary.entity.datacollection.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; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//井-羌ヨ√ +public class VariableArchiveQueryParam extends BaseQueryParam { + + // 筝脂id + private Collection ids; + + // 筝脂id + private Long id; + + // 筝腮g軸箙>査 + private List taxAgentIds; + + // 莎綛贋 + @DataCheck(require = true,message = "莎絮筝巡減腥") + private String salaryMonth; + + private Date salaryMonthDate; + + // 紮 + private String username; + + // id + private List departmentIds; + + // 綏ュ + private String workcode; + + // 筝莉醇─炊絽井 + private boolean hasData; + + private List employeeIds; + + private List columns; +} diff --git a/src/com/engine/salary/entity/datacollection/param/VariableArchiveSaveParam.java b/src/com/engine/salary/entity/datacollection/param/VariableArchiveSaveParam.java new file mode 100644 index 000000000..60e82cf91 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/VariableArchiveSaveParam.java @@ -0,0 +1,38 @@ +package com.engine.salary.entity.datacollection.param; + +import com.engine.salary.entity.datacollection.dto.VariableArchiveItemDTO; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//井-羌罅f篆絖 +public class VariableArchiveSaveParam { + + // 筝脂id + private Long id; + + // 莎綛贋 + @DataCheck(require = true,message = "莎絮筝巡減腥") + private String salaryMonth; + + @DataCheck(require = true,message = "箙>査id筝巡減腥") + private Long taxAgentIds; + + private Date salaryMonthDate; + + // 篋阪id + private Long employeeId; + + // 羌 + private List itemValueList; +} diff --git a/src/com/engine/salary/entity/datacollection/param/VariableItemQueryParam.java b/src/com/engine/salary/entity/datacollection/param/VariableItemQueryParam.java new file mode 100644 index 000000000..a2dcc0b0b --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/VariableItemQueryParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.datacollection.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 VariableItemQueryParam extends BaseQueryParam { + + /** + * 羌蕁合腱 + */ + private String itemName; + + + private Long id; + + /** + * 蕁合ids + */ + private List itemIds; +} diff --git a/src/com/engine/salary/entity/datacollection/param/VariableItemSaveParam.java b/src/com/engine/salary/entity/datacollection/param/VariableItemSaveParam.java new file mode 100644 index 000000000..4b82aaef3 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/param/VariableItemSaveParam.java @@ -0,0 +1,41 @@ +package com.engine.salary.entity.datacollection.param; + +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; +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 lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableItemSaveParam { + + //筝脂id + @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; + + /** + * 絖罧窮瓜 + * @see SalaryDataTypeEnum + */ + @DataCheck(require = true, message = "絖罧窮瓜筝莅娯減腥") + private String dataType; +} diff --git a/src/com/engine/salary/entity/datacollection/po/DerateDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/DerateDeductionPO.java new file mode 100644 index 000000000..5d94d3627 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/DerateDeductionPO.java @@ -0,0 +1,81 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-腮蘂 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("銀腮i-腮蘂") +//hrsa_derate_deduction +@ElogTransform(name = "銀腮i-腮蘂") +public class DerateDeductionPO{ + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "篋蕁") + private String derateItem; + + @ElogTransform(name = "ц寒") + private String derateProperty; + + @ElogTransform(name = "蘂") + private String derateAmount; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; +} diff --git a/src/com/engine/salary/entity/datacollection/po/EndowmentInsurancePO.java b/src/com/engine/salary/entity/datacollection/po/EndowmentInsurancePO.java new file mode 100644 index 000000000..9bb444ebe --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/EndowmentInsurancePO.java @@ -0,0 +1,90 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-腮綮九肢篆 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_endowment_insurance") +@ElogTransform(name = "銀腮i-腮綮九肢篆") +public class EndowmentInsurancePO { + + @ElogTransform(name = "筝脂") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪id") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査ID") + private Long taxAgentId; + + @ElogTransform(name = "恰ユiゆ篁") + private Date deductionMonth; + + @ElogTransform(name = "腮綮九肢茣欠") + private String accountNumber; + + @ElogTransform(name = "ョ♂") + private String checkCode; + + @ElogTransform(name = "綛翫墾篆茣") + private String yearPremium; + + @ElogTransform(name = "綺篆茣") + private String monthPremium; + + @ElogTransform(name = "iら蘂") + private String currentDeduction; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; + +} diff --git a/src/com/engine/salary/entity/datacollection/po/FreeIncomePO.java b/src/com/engine/salary/entity/datacollection/po/FreeIncomePO.java new file mode 100644 index 000000000..085b7f751 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/FreeIncomePO.java @@ -0,0 +1,80 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-腮九ヨ; + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_free_income +@ElogTransform(name = "銀腮i-腮九") +public class FreeIncomePO { + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "腮篋蕁") + private String freeItem; + + @ElogTransform(name = "腮ц寒") + private String freeProperty; + + @ElogTransform(name = "腮蘂") + private String freeAmount; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; +} diff --git a/src/com/engine/salary/entity/datacollection/po/GrantDonationPO.java b/src/com/engine/salary/entity/datacollection/po/GrantDonationPO.java new file mode 100644 index 000000000..f65f73caa --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/GrantDonationPO.java @@ -0,0 +1,91 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-篋iょ莎蘂 + * + * @author chengliming + * @date 2023-06-09 15:03:45 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_grant_donation") +@ElogTransform(name = "銀腮i-篋iょ莎蘂") +public class GrantDonationPO { + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "莎篏腱") + private String recipientName; + + @ElogTransform(name = "莎篏膾括篋肴") + private String taxCode; + + @ElogTransform(name = "莎莚") + private String donationNumber; + + @ElogTransform(name = "莎ユ") + private Date donateDate; + + @ElogTransform(name = "莎蘂") + private String donateAmount; + + @ElogTransform(name = "iゆ箴") + private String deductionProportion; + + @ElogTransform(name = "絎iら蘂") + private String actualDeduction; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; + +} diff --git a/src/com/engine/salary/entity/datacollection/po/HealthInsurancePO.java b/src/com/engine/salary/entity/datacollection/po/HealthInsurancePO.java new file mode 100644 index 000000000..86152ffef --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/HealthInsurancePO.java @@ -0,0 +1,85 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-筝ュ嵯篆茵 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_health_insurance") +@ElogTransform(name = "銀腮i-筝ュ嵯篆茵") +public class HealthInsurancePO { + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "腮篌莚") + private String identificationNumber; + + @ElogTransform(name = "篆ユ") + private Date effectiveDate; + + @ElogTransform(name = "綛翫墾篆茣") + private String yearPremium; + + @ElogTransform(name = "綺篆茣") + private String monthPremium; + + @ElogTransform(name = "iら蘂") + private String currentDeduction; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; +} diff --git a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java index 83f1ec932..bea18e842 100644 --- a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java +++ b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java @@ -1,8 +1,9 @@ package com.engine.salary.entity.datacollection.po; +import cn.hutool.core.util.NumberUtil; +import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryFormulaVar; -import com.engine.hrmelog.annotation.ElogTransform; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -19,37 +20,53 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -@ElogTransform( name = "銀腮i") +@ElogTransform(name = "銀腮i") public class OtherDeductionPO { /** * 筝脂 */ - @ElogTransform( name="筝脂id" ) + @ElogTransform(name = "筝脂id") private Long id; /** * 篋阪篆≧茵筝脂id */ - @ElogTransform( name ="篋阪id") + @ElogTransform(name = "篋阪id") private Long employeeId; /** * 筝腮g軸箙>査筝脂id */ - @ElogTransform( name ="筝腮g軸箙>査id") + @ElogTransform(name = "筝腮g軸箙>査id") private Long taxAgentId; /** * 恰ユ篁 */ - @ElogTransform( name ="腮罨丈絮") + @ElogTransform(name = "腮罨丈絮") private Date declareMonth; + /** + * 腮九 + */ + @ElogTransform(name = "腮九") + @SalaryFormulaVar(defaultLabel = "腮九", labelId = 91238, dataType = "number") + @Encrypt + private String freeIncome; + + /** + * 腮蘂 + */ + @ElogTransform(name = "腮蘂") + @SalaryFormulaVar(defaultLabel = "腮蘂", labelId = 102810, dataType = "number") + @Encrypt + private String derateDeduction; + /** * 筝ュ嵯篆 */ - @ElogTransform( name ="筝ュ嵯篆") + @ElogTransform(name = "筝ュ嵯篆") @SalaryFormulaVar(defaultLabel = "筝ュ嵯篆", labelId = 91238, dataType = "number") @Encrypt private String businessHealthyInsurance; @@ -57,15 +74,16 @@ public class OtherDeductionPO { /** * 腮綮九肢篆 */ - @ElogTransform( name ="腮綮九肢篆") + @ElogTransform(name = "腮綮九肢篆") @SalaryFormulaVar(defaultLabel = "腮綮九肢篆", labelId = 91239, dataType = "number") @Encrypt private String taxDelayEndowmentInsurance; + /** * 銀 */ - @ElogTransform( name ="銀") + @ElogTransform(name = "銀") @SalaryFormulaVar(defaultLabel = "銀", labelId = 84500, dataType = "number") @Encrypt private String otherDeduction; @@ -73,7 +91,7 @@ public class OtherDeductionPO { /** * 篋iょ莎蘂 */ - @ElogTransform( name ="篋iょ莎蘂") + @ElogTransform(name = "篋iょ莎蘂") @SalaryFormulaVar(defaultLabel = "篋iょ莎蘂", labelId = 91240, dataType = "number") @Encrypt private String deductionAllowedDonation; @@ -81,7 +99,7 @@ public class OtherDeductionPO { /** * 筝篋阪肢 */ - @ElogTransform( name ="筝篋阪肢") + @ElogTransform(name = "筝篋阪肢") @SalaryFormulaVar(defaultLabel = "筝篋阪肢", labelId = 91240, dataType = "number") @Encrypt private String privatePension; @@ -89,19 +107,19 @@ public class OtherDeductionPO { /** * 綮堺狗 */ - @ElogTransform( name ="綮堺狗") + @ElogTransform(name = "綮堺狗") private Date createTime; /** * 贋井狗 */ - @ElogTransform( name ="贋井狗") + @ElogTransform(name = "贋井狗") private Date updateTime; /** * 綮坂査 */ - @ElogTransform( name ="綮坂査id") + @ElogTransform(name = "綮坂査id") private Long creator; /** @@ -112,10 +130,72 @@ public class OtherDeductionPO { /** * 腱ID */ - @ElogTransform( name ="腱") + @ElogTransform(name = "腱") private String tenantKey; private List employeeIds; private Collection taxAgentIds; + + private List freeIncomeList; + private List healthInsuranceList; + private List endowmentInsuranceList; + private List grantDonationList; + private List derateDeductionList; + private List otherDerateDeductionList; + private List personalPensionList; + + + public void handleList() { + freeIncome = freeIncomeList + .stream() + .map(FreeIncomePO::getFreeAmount) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + derateDeduction = derateDeductionList + .stream() + .map(DerateDeductionPO::getDerateAmount) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + taxDelayEndowmentInsurance = endowmentInsuranceList + .stream() + .map(EndowmentInsurancePO::getCurrentDeduction) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + deductionAllowedDonation = grantDonationList + .stream() + .map(GrantDonationPO::getActualDeduction) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + businessHealthyInsurance = healthInsuranceList + .stream() + .map(HealthInsurancePO::getCurrentDeduction) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + otherDeduction = otherDerateDeductionList + .stream() + .map(OtherDerateDeductionPO::getOtherDeduction) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + privatePension = personalPensionList + .stream() + .map(PersonalPensionPO::getPayAmount) + .filter(NumberUtil::isNumber) + .mapToDouble(Double::valueOf) + .sum() + ""; + + } + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/po/OtherDerateDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/OtherDerateDeductionPO.java new file mode 100644 index 000000000..74f403bab --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/OtherDerateDeductionPO.java @@ -0,0 +1,77 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-銀 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_other_derate_deduction +@ElogTransform(name = "銀腮i-銀") +public class OtherDerateDeductionPO { + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "腮蘂") + private String otherDeduction; + + @ElogTransform(name = "紊羈") + private String remark; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; +} diff --git a/src/com/engine/salary/entity/datacollection/po/PersonalPensionPO.java b/src/com/engine/salary/entity/datacollection/po/PersonalPensionPO.java new file mode 100644 index 000000000..766ad4783 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/PersonalPensionPO.java @@ -0,0 +1,98 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; +import com.engine.salary.enums.datacollection.EnumDeductionDataSource; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 銀腮i-筝篋阪肢 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_personal_pension") +@ElogTransform(name = "銀腮i-筝篋阪肢") +public class PersonalPensionPO{ + + @ElogTransform(name = "筝脂id") + private Long id; + + @ElogTransform(name = "筝肢;井Id") + private Long mainId; + + @ElogTransform(name = "腮罨丈絮") + private Date taxYearMonth; + + @ElogTransform(name = "膽頑換綺") + private Date payMonth; + + @ElogTransform(name = "篋阪") + private Long employeeId; + + @ElogTransform(name = "筝腮g軸箙>査") + private Long taxAgentId; + + @ElogTransform(name = "莚膠糸") + private Integer voucherType; + + @ElogTransform(name = "莚膠糸腱") + private String voucherTypeName; + + @ElogTransform(name = "莚膽") + private String voucherNo; + + @ElogTransform(name = "膽頑換蘂") + private String payAmount; + + @ElogTransform(name = "綵罅g倶 0綵罅 1綏峨罅") + private Integer fileStatus; + + /** + * 篋阪膠糸 + * @see DataCollectionEmployeeTypeEnum + */ + @ElogTransform(name = "篋阪膠糸") + private Integer employeeType; + + /** + * @see EnumDeductionDataSource + */ + @ElogTransform(name = "井ユ") + private Integer dataSource; + + @ElogTransform(name = "ユ") + private String collectSource; + + private Long ebDataId; + + @ElogTransform(name = "綮堺狗", ignore = true) + private Date createTime; + + @ElogTransform(name = "贋井狗", ignore = true) + private Date updateTime; + + @ElogTransform(name = "綮坂査", ignore = true) + private Long creator; + + @ElogTransform(name = "綏峨ゃ0鐚ゃ1鐚綏峨", ignore = true) + private Integer deleteType; + + @ElogTransform(name = "腱key", ignore = true) + private String tenantKey; + + //筝脂id + private Collection ids; +} diff --git a/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java b/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java new file mode 100644 index 000000000..cd211f2d3 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/VariableArchiveItemPO.java @@ -0,0 +1,78 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.salary.annotation.Encrypt; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName VariableArchiveItemPO + * @date 2024/08/07 9:15 + * @description 羌罅f膸 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableArchiveItemPO { + + private Long id; + + /** + * 綏id + */ + private Long employeeId; + + /** + * 羌莎罅f筝脂id + */ + private Long variableArchiveId; + + /** + * 羌蕁合id + */ + private Long variableItemId; + + /** + * 羌 + */ + @Encrypt + private String itemValue; + + /** + * 綮堺狗 + */ + private Date createTime; + + /** + * 贋井狗 + */ + private Date updateTime; + + /** + * 綮坂査 + */ + private Long creator; + + /** + * 綏峨ゃ0鐚ゃ1鐚綏峨 + */ + private Integer deleteType; + + /** + * 腱ID + */ + private String tenantKey; + + + //筝脂id + private Collection ids; + private Collection variableArchiveIds; + +} diff --git a/src/com/engine/salary/entity/datacollection/po/VariableArchivePO.java b/src/com/engine/salary/entity/datacollection/po/VariableArchivePO.java new file mode 100644 index 000000000..c078f7dbc --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/VariableArchivePO.java @@ -0,0 +1,51 @@ +package com.engine.salary.entity.datacollection.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName VariableArchivePO + * @date 2024/08/07 9:16 + * @description 羌罅f + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableArchivePO { + + private Long id; + + /** + * 篋阪id + */ + private Long employeeId; + + private Long taxAgentId; + + /** + * 莎篁 + */ + private Date salaryMonth; + + private Date createTime; + + private Date updateTime; + + private Long creator; + + private Integer deleteType; + + private String tenantKey; + + //筝脂id + private Collection ids; + +} diff --git a/src/com/engine/salary/entity/datacollection/po/VariableItemPO.java b/src/com/engine/salary/entity/datacollection/po/VariableItemPO.java new file mode 100644 index 000000000..78cfa8136 --- /dev/null +++ b/src/com/engine/salary/entity/datacollection/po/VariableItemPO.java @@ -0,0 +1,58 @@ +package com.engine.salary.entity.datacollection.po; + +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName VariableItemPO + * @date 2024/08/07 9:14 + * @description 羌蕁合 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VariableItemPO { + + /** + * 羌蕁合id + */ + private Long id; + + /** + * 羌蕁合腱 + */ + private String name; + + private String code; + + /** + * 絖罧窮瓜string鐚絖膃number鐚医 + * + * @see SalaryDataTypeEnum + */ + private String dataType; + + private Date createTime; + + private Date updateTime; + + private Long creator; + + private Integer deleteType; + + private String tenantKey; + + + //筝脂id + private Collection ids; + +} diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java index 69c7997f8..c2fe227e5 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java @@ -110,7 +110,18 @@ public class EmployeeDeclareRefresh { String idNum = hrmEmployeeComInfo.getIdNo() != null ? hrmEmployeeComInfo.getIdNo().toUpperCase() : ""; CardTypeEnum cardType = CardTypeEnum.RESIDENT_IDENTITY_CARDS; if (!SalaryCardUtil.checkIdNum(idNum)) { + //藥莅ゅ醇ょ cardType = CardTypeEnum.FOREIGN_PASSPORT; + + //羝羮渇茵莚 + if (SalaryCardUtil.checkHMPassportIdNum(idNum)) { + cardType = CardTypeEnum.HM_PASSPORT; + } + + //佀江茵莚 + if (SalaryCardUtil.checkTPassportIdNum(idNum)) { + cardType = CardTypeEnum.T_PASSPORT; + } } EmployeeDeclarePO employeeDeclare = initEmployeeDeclare(dto.getTaxAgentId(), dto.getTaxCycle(), employeeId); employeeDeclare.setEmployeeId(hrmEmployeeComInfo.getEmployeeId()); diff --git a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java new file mode 100644 index 000000000..48411733a --- /dev/null +++ b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java @@ -0,0 +1,434 @@ +package com.engine.salary.entity.hrm.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HrmSnapshotPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 綽ф狗 + */ + @ElogTransform(name = "綽ф狗") + private Date snapshotTime; + + + /** + * 篋阪id + */ + @ElogTransform(name = "篋阪id") + private Long employeeId; + + /** + * 紮 + */ + @ElogTransform(name = "紮") + private String lastname; + + + /** + * 綏ヨ絽1 + */ + @ElogTransform(name = "綏ヨ絽1") + private String accountid1; + + /** + * 綏ヨ茣垽桁 + */ + @ElogTransform(name = "綏ヨ茣垽桁") + private String accountname; + + /** + * 絽埇瓜 + */ + @ElogTransform(name = "絽埇瓜") + private Integer accounttype; + + /** + * 腱絽 + */ + @ElogTransform(name = "腱絽") + private String accumfundaccount; + + /** + * + */ + @ElogTransform(name = "") + private Integer assistantid; + + /** + * 綏ヨ区1 + */ + @ElogTransform(name = "綏ヨ区1") + private Integer bankid1; + + /** + * 絮筝糸 + */ + @ElogTransform(name = "絮筝糸") + private Integer belongto; + + /** + * ュ∽狗 + */ + @ElogTransform(name = "ュ∽狗") + private String bememberdate; + + /** + * ュ狗 + */ + @ElogTransform(name = "ュ狗") + private String bepartydate; + + /** + * + */ + @ElogTransform(name = "") + private String birthday; + + /** + * 榊 + */ + @ElogTransform(name = "榊") + private String birthplace; + + /** + * 荳篁処埇 + */ + @ElogTransform(name = "荳篁処埇") + private String certificatenum; + + /** + * 夔紮ユ + */ + @ElogTransform(name = "夔紮ユ") + private String companystartdate; + + /** + * 夔拘 + */ + @ElogTransform(name = "夔拘") + private BigDecimal companyworkyear; + + /** + * 絮筝綽 + */ + @ElogTransform(name = "絮筝綽") + private Integer costcenterid; + + /** + * 遵id + */ + @ElogTransform(name = "遵id") + private Integer countryid; + + /** + * 絖篏 + */ + @ElogTransform(name = "絖篏") + private String degree; + + /** + * 絮 + */ + @ElogTransform(name = "絮") + private Integer departmentid; + + /** + * 腱 + */ + @ElogTransform(name = "腱") + private String departmentname; + + /** + * 絖 + */ + @ElogTransform(name = "絖") + private Integer educationlevel; + + /** + * 球篁 + */ + @ElogTransform(name = "球篁") + private String email; + + + /** + * 膸ユ + */ + @ElogTransform(name = "膸ユ") + private String enddate; + + /** + * + */ + @ElogTransform(name = "") + private String extphone; + + /** + * 篌 + */ + @ElogTransform(name = "篌") + private String fax; + + /** + * 羂 + */ + @ElogTransform(name = "羂") + private String folk; + + /** + * ュ嵯九 + */ + @ElogTransform(name = "ュ嵯九") + private String healthinfo; + + /** + * 絎九梱篏 + */ + @ElogTransform(name = "絎九梱篏") + private String homeaddress; + + + /** + * 筝阪轡篌篌 + */ + @ElogTransform(name = "筝阪轡篌篌") + private String islabouunion; + + /** + * 茣f颷 + */ + @ElogTransform(name = "茣f颷") + private String jobactivitydesc; + + /** + * 腱 + */ + @ElogTransform(name = "腱") + private Integer jobcall; + + /** + * 腱医腱 + */ + @ElogTransform(name = "腱医腱") + private String jobcallname; + + /** + * 綏ヤ膾у + */ + @ElogTransform(name = "綏ヤ膾у") + private Integer joblevel; + + /** + * 絏篏 + */ + @ElogTransform(name = "絏篏") + private Integer jobtitle; + + /** + * 絏篏腱 + */ + @ElogTransform(name = "絏篏腱") + private String jobtitlename; + + /** + * 脂ユ + */ + @ElogTransform(name = "脂ユ") + private String lastlogindate; + + /** + * 綏ヤ亥 + */ + @ElogTransform(name = "綏ヤ亥") + private Integer locationid; + + /** + * 膤紫脂絽 + */ + @ElogTransform(name = "膤紫脂絽") + private String loginid; + + /** + * 膸 + */ + @ElogTransform(name = "膸") + private Integer managerid; + + /** + * 筝膾 + */ + @ElogTransform(name = "筝膾") + private String managerstr; + + /** + * 紿紮紫九 + */ + @ElogTransform(name = "紿紮紫九") + private String maritalstatus; + + /** + * + */ + @ElogTransform(name = "") + private String mobile; + + /** + * 銀笈 + */ + @ElogTransform(name = "銀笈") + private String mobilecall; + + /** + * 順 + */ + @ElogTransform(name = "順") + private Integer nationality; + + /** + * 膠茣 + */ + @ElogTransform(name = "膠茣") + private String nativeplace; + + /** + * 炊音∵ + */ + @ElogTransform(name = "炊音∵") + private String policy; + + /** + * 莚膸ユ + */ + @ElogTransform(name = "莚膸ユ") + private String probationenddate; + + /** + * 桁 + */ + @ElogTransform(name = "桁") + private String regresidentplace; + + /** + * 絮篏亥笈 + */ + @ElogTransform(name = "絮篏亥笈") + private String residentphone; + + /** + * 絮篏 + */ + @ElogTransform(name = "絮篏") + private String residentplace; + + /** + * 絮篏育膽 + */ + @ElogTransform(name = "絮篏育膽") + private String residentpostcode; + + /** + * 欠瓜 + */ + @ElogTransform(name = "欠瓜") + private String resourcetype; + + /** + * 絎膾у + */ + @ElogTransform(name = "絎膾у") + private Integer seclevel; + + /** + * у + */ + @ElogTransform(name = "у") + private String sex; + + + + /** + * 綣紮ユ + */ + @ElogTransform(name = "綣紮ユ") + private String startdate; + + /** + * 0鐚莚
1鐚罩e
2鐚筝贋
3鐚莚綮倶
4鐚茹h
5鐚胼肢
6鐚篌
7鐚 + */ + @ElogTransform(name = " 0鐚莚
1鐚罩e
2鐚筝贋
3鐚莚綮倶
4鐚茹h
5鐚胼肢
6鐚篌
7鐚") + private Integer status; + + /** + * 絮1 + */ + @ElogTransform(name = "絮1") + private Integer subcompanyid1; + + /** + * 腱 + */ + @ElogTransform(name = "腱") + private String subcompanyname; + + /** + * 笈 + */ + @ElogTransform(name = "笈") + private String telephone; + + /** + * 篏顓埇 + */ + @ElogTransform(name = "篏顓埇") + private String tempresidentnumber; + + /** + * 綏ユц寒 + */ + @ElogTransform(name = "綏ユц寒") + private Integer usekind; + + /** + * 膽 + */ + @ElogTransform(name = "膽") + private String workcode; + + /** + * 絎 + */ + @ElogTransform(name = "絎") + private String workroom; + + /** + * 綏ヤ綣紮ユ + */ + @ElogTransform(name = "綏ヤ綣紮ユ") + private String workstartdate; + + /** + * 綏ヤ綛顔 + */ + @ElogTransform(name = "綏ヤ綛顔") + private BigDecimal workyear; + + + //筝脂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 5ff1c824a..2ccd45402 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -9,6 +9,7 @@ import com.engine.salary.constant.HrmSalaryPayrollConf; import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryBillConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; @@ -145,6 +146,8 @@ public class SalaryBillBO { .workcode(simpleEmployee.getWorkcode()) .idNo(simpleEmployee.getIdNo()) .statusName(simpleEmployee.getStatusName()) + .accountType(simpleEmployee.getAccountType()) + .accountTypeName(simpleEmployee.getAccountTypeName()) .build(); List items = employeeInformation.getItems(); // 1.SalaryAcctResultBO.buildEmployeeFieldName()羈 @@ -205,7 +208,9 @@ public class SalaryBillBO { } } - return theme.replace("${companyName}", companyName).replace("${salaryMonth}", new SimpleDateFormat("yyyy綛MM").format(salaryMonth)); + return theme.replace("${companyName}", companyName) + .replace("${salaryMonth}", new SimpleDateFormat("yyyy綛MM").format(salaryMonth)) + .replace("${salaryYear}", new SimpleDateFormat("yyyy綛").format(salaryMonth)); } // /** @@ -246,9 +251,9 @@ public class SalaryBillBO { String title = billTitle; // 蘂 String context = "劫紙ョ莚"; // 絎 // PC腴丈・ - String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&recipient=" + employeeId; + String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id + "&salaryCode=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); // 腱糸腴丈・ - String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&recipient=" + employeeId; + String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id + "&salaryCode=" + AESEncryptUtil.encrypt4SalaryBill(employeeId.toString()); try { MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, title, context, linkUrl, linkMobileUrl); messageBean.setCreater(Integer.parseInt(salaryBillSendParam.getSendUser().getUID() + ""));// 綮坂査id diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java index af239ee5f..8824004c6 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryBill.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,51 +17,24 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -////"綏ヨ") -//@TableOperates(value = { -// @Operates(index = 0, text = "ョ", labelId = 90821) -//}, tableType = WeaTableTypeEnum.NONE) public class SalaryMySalaryBillListDTO { -// 筝脂id") -// @WeaFormat( -// label = "id", -// tableColumn = @TableColumn(hide = "true") -// ) -// @JsonSerialize(using = ToStringSerializer.class) private Long id; -// 莎絮") -// @WeaFormat( -// label = "莎絮", -// labelId = 87614, -// tableColumn = @TableColumn(width = "20%") -// ) -// @JsonFormat(pattern = "yyyy-MM") + @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") private Date salaryYearMonth; -// 悟罨≧") private String acctTimes; -// 筝腮g軸箙>査") -// @WeaFormat( -// label = "筝腮g軸箙>査", -// labelId = 86184, -// tableColumn = @TableColumn(width = "40%") -// ) private String taxAgent; -// 丈狗") -// @WeaFormat( -// label = "丈狗", -// labelId = 93634, -// tableColumn = @TableColumn(width = "40%") -// ) -// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date sendTime; private Long employeeId; + private String salaryCode; + } diff --git a/src/com/engine/salary/entity/salaryBill/dto/salaryBillViewingLimitSetting.java b/src/com/engine/salary/entity/salaryBill/dto/salaryBillViewingLimitSetting.java index 8bd3a1ceb..fbe9752bf 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/salaryBillViewingLimitSetting.java +++ b/src/com/engine/salary/entity/salaryBill/dto/salaryBillViewingLimitSetting.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryBill.dto; +import com.engine.salary.enums.salarybill.MonthTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -19,6 +20,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class salaryBillViewingLimitSetting { + /** + * 篁初句瓜 + */ + private MonthTypeEnum monthType; /** * ョ綏ヨ diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java new file mode 100644 index 000000000..2ab5be248 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillGetTokenParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryBillGetTokenParam + * @author Harryxzy + * @date 2024/11/6 9:59 + * @description 膃筝壕キtoken + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillGetTokenParam { + + // + private String salaryCode; + + // 絲 + private String recipient; + +} diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index 726442188..335d40833 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.NumberUtil; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.common.LocalDateRange; import com.engine.salary.constant.SalaryFormulaFieldConstant; +import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -98,6 +99,11 @@ public class CalculateFormulaVarBO { */ private List salaryAcctResultPOS; + /** + * 羌莎罅f + */ + private List> variableArchiveList; + public CalculateFormulaVarBO(List simpleEmployees, List salaryArchiveData, List addUpSituationPOS, @@ -105,7 +111,8 @@ public class CalculateFormulaVarBO { List otherDeductionPOS, List> welfareData, List attendQuoteDataDTOS, - List salaryAcctResultPOS) { + List salaryAcctResultPOS, + List> variableArchiveList) { this.simpleEmployees = simpleEmployees; this.salaryArchiveData = salaryArchiveData; this.addUpSituationPOS = addUpSituationPOS; @@ -114,6 +121,7 @@ public class CalculateFormulaVarBO { this.welfareData = welfareData; this.attendQuoteDataDTOS = attendQuoteDataDTOS; this.salaryAcctResultPOS = salaryAcctResultPOS; + this.variableArchiveList = variableArchiveList; } /** @@ -128,6 +136,8 @@ public class CalculateFormulaVarBO { handleSalaryAcctResult(salaryAcctCalculateBO, resultMap); // 紊莎罅f handleSalaryArchiveData(salaryAcctCalculateBO, resultMap); + // 紊羌莎罅f + handleVariableArchiveData(salaryAcctCalculateBO, resultMap); // 紊緇膣莅≧ handleAddUpSituation(resultMap); // 紊膣莅>蕁拷i @@ -245,6 +255,27 @@ public class CalculateFormulaVarBO { } } + private void handleVariableArchiveData(SalaryAcctCalculateBO salaryAcctCalculateBO, Map> resultMap) { + Map> variableArchiveMap = SalaryEntityUtil.convert2Map(variableArchiveList, map -> map.getOrDefault("taxAgentIds", "").toString() + "-" + map.getOrDefault("employeeId", "").toString()); + // 紂域膸筝 + for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { + List formulaVarValues = resultMap.computeIfAbsent(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId(), + k -> Lists.newArrayList()); + + String key = salaryAcctEmployeePO.getTaxAgentId().toString() + "-" + salaryAcctEmployeePO.getEmployeeId().toString(); + Map map = variableArchiveMap.getOrDefault(key, Collections.emptyMap()); + formulaVarValues.addAll(salaryAcctCalculateBO.getVariableItems().stream().map(field -> { + String fieldId = SalaryFormulaReferenceEnum.VARIABLE_ITEM.getValue() + + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + + field.getCode(); + + String value = map.getOrDefault(field.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX, StringUtils.EMPTY) == null ? StringUtils.EMPTY + : map.getOrDefault(field.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX, StringUtils.EMPTY).toString(); + return new FormulaVarValue().setFieldId(fieldId).setFieldValue(value); + }).collect(Collectors.toList())); + } + } + /** * 号莪莅∴茹紊莎罅f莪鐚莉∽綣靶莨筝 * diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java index 57c113390..c0ec071e1 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java @@ -1,9 +1,9 @@ package com.engine.salary.entity.salaryacct.bo; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; +import com.engine.salary.entity.datacollection.po.VariableItemPO; 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.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; @@ -48,13 +48,6 @@ public class SalaryAcctCalculateBO { */ private SalarySobCycleDTO salarySobCycleDTO; - /** - * 悟絎 - */ - private Map salaryAcctLockResultPOS; - private List lockSalaryItemIds; - - /** * 後腮罨丈絮銀莎悟莅医鐚莎膠糸筝阪轡莎茣絅鐚 */ @@ -130,6 +123,11 @@ public class SalaryAcctCalculateBO { */ private TaxDeclarationFunctionEnum taxDeclarationFunction; + /** + * 羌莎絖罧 + */ + private List variableItems; + @Data @AllArgsConstructor public static class Result { diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctConsolidatedTaxBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctConsolidatedTaxBO.java index 16e46d6ad..d5155f0ae 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctConsolidatedTaxBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctConsolidatedTaxBO.java @@ -59,8 +59,8 @@ public class SalaryAcctConsolidatedTaxBO { || TaxDeclarationDataIndexConstant.ADD_UP_SPE_ADDI_DEDUCTION.equals(salaryItem.getCode())) { return salaryAcctResults.stream() .filter(e -> Objects.equals(e.getSalaryItemId(), salaryItem.getId())) - .map(SalaryAcctResultPO::getResultValue) .findFirst() + .map(SalaryAcctResultPO::getResultValue) .orElse(""); } // 綵膣莅≧九 = 膣莅≦ + 罨≧九 + 筝罨≧九 diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 26e2b2670..a8dbc514e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.util.SalaryEntityUtil; import com.google.common.collect.Lists; @@ -63,9 +64,10 @@ public class SalaryAcctEmployeeBO { .employeeName(simpleEmployee.getUsername()) .taxAgentId(e.getTaxAgentId()) .taxAgentName(taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY)) - .departmentId(simpleEmployee.getDepartmentId()) - .departmentName(simpleEmployee.getDepartmentName()) - .status(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(simpleEmployee.getStatus()))) + .departmentId(e.getDepartmentId()) + .departmentName(e.getDepartmentName()) + .status(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(e.getStatus()))) + .accountType(AccountTypeEnum.getDefaultLabelByValue(e.getAccountType())) .mobile(simpleEmployee.getMobile()) .jobNum(simpleEmployee.getWorkcode()) .hireDate(simpleEmployee.getCompanystartdate()) @@ -110,6 +112,7 @@ public class SalaryAcctEmployeeBO { .subcompanyId(emp.getSubcompanyid()) .subcompanyName(emp.getSubcompanyName()) .status(emp.getStatus()) + .accountType(emp.getAccountType()) .creator(employeeId) .createTime(now) .updateTime(now) @@ -138,6 +141,8 @@ public class SalaryAcctEmployeeBO { simpleEmployee.setJobtitleName(acctEmployeePO.getJobtitleName()); simpleEmployee.setStatusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(acctEmployeePO.getStatus(), "1")))); simpleEmployee.setStatus(acctEmployeePO.getStatus()); + simpleEmployee.setAccountType(acctEmployeePO.getAccountType()); + simpleEmployee.setAccountTypeName(AccountTypeEnum.getDefaultLabelByValue(acctEmployeePO.getAccountType())); } diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 32028e25a..b3335f05e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -6,12 +6,14 @@ import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; import java.math.BigDecimal; import java.util.Collections; @@ -92,6 +94,8 @@ public class SalaryAcctFormulaBO { .sex(sexName) .status(simpleEmployee.getStatus()) .statusName(simpleEmployee.getStatusName()) + .accountType(simpleEmployee.getAccountType()) + .accountTypeName(simpleEmployee.getAccountTypeName()) .departmentName(simpleEmployee.getDepartmentName()) .departmentId(simpleEmployee.getDepartmentId()) .subcompanyName(simpleEmployee.getSubcompanyName()) @@ -113,8 +117,10 @@ public class SalaryAcctFormulaBO { .mobile(simpleEmployee.getMobile()) .telephone(simpleEmployee.getTelephone()) .sex(sexName) - .status(simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatusName()) + .status(salaryAcctEmployeePO.getStatus()) + .statusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployeePO.getStatus(), "1")))) + .accountType(simpleEmployee.getAccountType()) + .accountTypeName(simpleEmployee.getAccountTypeName()) .departmentName(salaryAcctEmployeePO.getDepartmentName()) .departmentId(salaryAcctEmployeePO.getDepartmentId()) .subcompanyName(salaryAcctEmployeePO.getSubcompanyName()) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index e0fad94bd..ad98f4ad7 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -47,7 +47,10 @@ public class SalaryAcctRecordBO { List employeeComInfos, List salaryAcctEmployeeCountDTOS, List salarySendCheckResult, - List taxAgentPOS) { + List taxAgentPOS, + List needApprovalSalarySobIds, + boolean approvalCanFile, + boolean approvalCanReCalc) { if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { return Collections.emptyList(); } @@ -69,16 +72,22 @@ public class SalaryAcctRecordBO { if(!Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE)){ btnList.add(new WeaTableOperate("", null, "1")); } - btnList.add(new WeaTableOperate("綵罅", null, "2")); + if (approvalCanFile || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("綵罅", null, "2")); + } } else if (SalaryAcctRecordStatusEnum.ARCHIVED == salaryAcctRecordStatusEnum && ( salarySendMap.get(salaryAcctRecordPO.getId()) ==Boolean.TRUE ) ){ btnList.add(new WeaTableOperate("ョ", null, "3")); - btnList.add(new WeaTableOperate("井悟", null, "4")); + if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("井悟", null, "4")); + } if(salaryAcctRecordPO.getBackCalcStatus() == null || salaryAcctRecordPO.getBackCalcStatus() == NumberUtils.INTEGER_ZERO) { btnList.add(new WeaTableOperate("膊", null, "5")); } } else { btnList.add(new WeaTableOperate("ョ", null, "3")); - btnList.add(new WeaTableOperate("井悟", null, "4")); + if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) { + btnList.add(new WeaTableOperate("井悟", null, "4")); + } } return SalaryAcctRecordListDTO.builder() .id(salaryAcctRecordPO.getId()) @@ -96,6 +105,7 @@ public class SalaryAcctRecordBO { .accountantName(usernameMap.getOrDefault(salaryAcctRecordPO.getCreator(), StringUtils.EMPTY)) .updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime())) .description(salaryAcctRecordPO.getDescription()) + .approvalStatus(salaryAcctRecordPO.getApprovalStatus()) .operate(btnList) .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 ef1dcca05..c80d67dfe 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -20,6 +20,7 @@ import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; @@ -296,6 +297,8 @@ public class SalaryAcctResultBO { 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())) { @@ -308,6 +311,10 @@ public class SalaryAcctResultBO { 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())); } @@ -316,8 +323,8 @@ public class SalaryAcctResultBO { } // 筝脂id map.put("id", e.getId()); - //絎倶 - map.put("lockStatus", LockStatusEnum.getByValue(e.getLockStatus()).getDefaultLabel()); + //絎井 + 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軸箙>査 @@ -395,6 +402,10 @@ public class SalaryAcctResultBO { map.put("status", salaryAcctEmployee.getStatus()); } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployee.getStatus(), "1")))); + } else if ("accountType".equals(salarySobEmpField.getFieldCode())) { + map.put("accountType", salaryAcctEmployee.getAccountType()); + } else if ("accountTypeName".equals(salarySobEmpField.getFieldCode())) { + map.put("accountTypeName", AccountTypeEnum.getDefaultLabelByValue(salaryAcctEmployee.getAccountType())); } else { map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); } diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcTaxRequest.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcTaxRequest.java index 69c78a14c..7e836152a 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcTaxRequest.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcTaxRequest.java @@ -233,7 +233,7 @@ public class SalaryCalcTaxRequest { // 紮 requestParam.put("xm", employeeDeclare.getEmployeeName()); // 莚篁句瓜 - requestParam.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + requestParam.put("zzlx", CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel()); // 莚篁九埇 requestParam.put("zzhm", employeeDeclare.getCardNum()); // 緇蕁合 diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java index 5f9d256f8..40da19f1d 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java @@ -30,7 +30,7 @@ public class SalaryAccEmployeeListDTO { @TableTitle(title = "紮", dataIndex = "employeeName", key = "employeeName") private String employeeName; - //筝腮g軸箙>査id") + //筝腮g軸箙>査id private Long taxAgentId; @@ -38,30 +38,28 @@ public class SalaryAccEmployeeListDTO { @TableTitle(title = "筝腮g軸箙>査", dataIndex = "taxAgentName", key = "taxAgentName") private String taxAgentName; - //id") + //id private Long departmentId; - //") @TableTitle(title = "", dataIndex = "departmentName", key = "departmentName") private String departmentName; - //阪 @TableTitle(title = "阪", dataIndex = "mobile", key = "mobile") private String mobile; - //綏ュ") @TableTitle(title = "綏ュ", dataIndex = "jobNum", key = "jobNum") private String jobNum; - //綏ョ倶") @TableTitle(title = "綏ョ倶", dataIndex = "status", key = "status") private String status; + @TableTitle(title = "茣埇瓜", dataIndex = "accountType", key = "accountType") + private String accountType; + - //ヨユ") @TableTitle(title = "ヨユ", dataIndex = "hireDate", key = "hireDate") private String hireDate; diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index 61a8cd3bc..edc4d99dd 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -73,6 +73,9 @@ public class SalaryAcctRecordListDTO { @TableTitle(title = "紊羈", dataIndex = "description", key = "description") private String description; + @TableTitle(title = "絎≧合倶", dataIndex = "approvalStatus", key = "approvalStatus") + private String approvalStatus; + @TableTitle(title = "篏", dataIndex = "operate", key = "operate") private List operate; } diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java index b09c535ce..52c3b7f13 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java @@ -1,6 +1,5 @@ package com.engine.salary.entity.salaryacct.param; -import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; @@ -8,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; -import java.util.Map; /** * 莎悟 @@ -29,9 +27,4 @@ public class SalaryAcctCalculateParam { @DataCheck(require = true,message = "育莚鐚莎悟莅医ID筝巡減腥") private Long salaryAcctRecordId; - - /** - * 篋阪篆≧鐚ヨ;篏睡 - */ - private Map emps; } diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java index 0d7ec5288..8f0ce99fa 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctEmployeeQueryParam.java @@ -9,6 +9,7 @@ import lombok.*; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 莎悟篋阪茵ヨ∽>散 @@ -67,4 +68,13 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam { private List ids; private String workcode; + + private Set salaryMonths; + + + private Collection salaryAcctRecordIds; + private Collection salarySobIds; + private Collection employeeIds; + + } diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java new file mode 100644 index 000000000..555411825 --- /dev/null +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultLockParam.java @@ -0,0 +1,34 @@ +package com.engine.salary.entity.salaryacct.param; + +import com.engine.salary.enums.salaryaccounting.LockStatusEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 莎井守絎 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalaryAcctResultLockParam { + //絎倶 + @DataCheck(require = true,message = "絎倶筝巡減腥") + private LockStatusEnum lockStatus; + + //莎悟篋阪Id + @DataCheck(require = true,message = "莎悟篋阪筝巡減腥") + private Long acctEmpId; + + //莎蕁合Id + @DataCheck(require = true,message = "莎蕁合筝巡減腥") + private Long salaryItemId; +} diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index 5c636bcfd..7d508583c 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -12,6 +12,7 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 莎悟篋阪 @@ -121,6 +122,7 @@ public class SalaryAcctEmployeePO { private Date updateTime; + @Deprecated @ElogTransform(name = "絎倶") private Integer lockStatus; @@ -128,31 +130,50 @@ public class SalaryAcctEmployeePO { * */ @I18n + @SalaryFormulaVar(defaultLabel = "", labelId = 86321, dataType = "string") private String subcompanyName; + @SalaryFormulaVar(defaultLabel = "ID", labelId = 86321, dataType = "string") private Long subcompanyId; /** * */ @I18n + @SalaryFormulaVar(defaultLabel = "", labelId = 86321, dataType = "string") private String departmentName; + @SalaryFormulaVar(defaultLabel = "ID", labelId = 86321, dataType = "string") private Long departmentId; /** * 絏篏 */ @I18n + @SalaryFormulaVar(defaultLabel = "絏篏", labelId = 86321, dataType = "string") private String jobtitleName; + @SalaryFormulaVar(defaultLabel = "絏篏ID", labelId = 86321, dataType = "string") private Long jobtitleId; /** * 腱 */ @I18n + @SalaryFormulaVar(defaultLabel = "腱", labelId = 86321, dataType = "string") private String jobcall; + @SalaryFormulaVar(defaultLabel = "腱ID", labelId = 86321, dataType = "string") private Long jobcallId; /** * 倶 */ + @SalaryFormulaVar(defaultLabel = "倶膽", labelId = 86321, dataType = "string") private String status; + //絎蕁合 + private List lockItems; + + + /** + * 筝紙∴侃 0/null鐚筝肢侃 1鐚罨∴侃 + */ + private Integer accountType; + + //-------->散---------- //筝脂id diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index adf69f57b..1f0025ca5 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -77,14 +77,12 @@ public class SalaryAcctRecordPO { * 膊鐚筝罨≧悟莎悟莅医id鐚 */ @Deprecated -// //紊絖罧1", ignore = true) private Long superId; /** * 膊鐚紮f∴莎悟莅医id鐚 */ @Deprecated -// //紊絖罧2", ignore = true) private Long rootId; /** @@ -128,9 +126,20 @@ public class SalaryAcctRecordPO { @ElogTransform( name = "贋井狗" ) private Date updateTime; + /** + * 絎≧号腮id + */ + private String approvalId; + + /** + * 絎≧合倶 + */ + private String approvalStatus; + /** * 絎莎蕁合 */ + @Deprecated private List lockSalaryItemIds; //ヨ∽>散------------------------------- diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java index a8d493a01..d5c4343f9 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java @@ -18,6 +18,7 @@ import java.util.Date; @NoArgsConstructor @Builder @Data +//hrsa_acct_result_template public class SalaryAcctResultTemplatePO { /** * 筝脂id @@ -29,6 +30,11 @@ public class SalaryAcctResultTemplatePO { */ private String templateName; + /** + * 罔≧睡瓜, 0鐚絲弱堺─ 1鐚怨弱堺─ 2鐚絲弱ユ─ + */ + private Integer type; + /** * 莎茣絅id */ @@ -51,4 +57,5 @@ public class SalaryAcctResultTemplatePO { //筝脂id private Collection ids; + private Collection types; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index ba495548e..9fc2d96bc 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -12,13 +12,12 @@ 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.TaxAgentEmpChangePO; -import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.taxagent.TaxAgentEmpChangeTypeEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.google.common.collect.Lists; import com.engine.salary.util.db.IdGenerator; +import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -62,7 +61,7 @@ public class SalaryArchiveBO { * * @param salaryItems */ - public static List buildSalaryArchiveTable(List salaryItems) { + public static List buildSalaryArchiveTable(List salaryItems, boolean openSecondaryAccount) { // 茵取;紊 List columns = new ArrayList<>(); WeaTableColumn idColumn = new WeaTableColumn("100px", "id", "id"); @@ -73,6 +72,9 @@ public class SalaryArchiveBO { employeeIdColumn.setDisplay(WeaBoolAttr.FALSE); columns.add(employeeIdColumn); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "紮"), "username")); + if (openSecondaryAccount) { + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "茣埇瓜"), "accountType")); + } columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "筝腮g軸箙>査"), "taxAgentName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, ""), "subcompanyName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, ""), "departmentName")); @@ -287,40 +289,42 @@ public class SalaryArchiveBO { // 絋医 莚贋鐚絋羃≧罅f鐚医鐚絋罅f筝鐚絨掩医絎筝鐚篁ヤ肩腮g軸箙>査篋阪idゆ筝 if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.ADD.getValue()) { if (salaryArchive != null) { - // 筝莊喝緇絎鐚篁a莪b莪a鐚ゅ荀 - if (stopStatus.contains(salaryArchive.getRunStatus())) { - // 莊喝緇絎 - salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); - if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { - salaryArchive.setPayStartDate(today); - salaryArchive.setPayEndDate(null); - } - salaryArchiveUpdateTodoList.add(salaryArchive); - // 緇医絨沿紊倶亥莎蕁合 - if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { - // 決亥莎蕁合井 - List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(salaryArchive.getId())).collect(Collectors.toList()); - salaryArchiveItemValuelList.forEach(i -> { - salaryArchiveItemAddTodos.add(SalaryArchiveItemPO.builder() - .id(IdGenerator.generate()) - .salaryArchiveId(salaryArchive.getId()) - .employeeId(salaryArchive.getEmployeeId()) - .effectiveTime(today) - .adjustReason(SalaryArchiveItemAdjustReasonEnum.INIT.getValue()) - .salaryItemId(i.getSalaryItemId()) - .itemValue(i.getItemValue()) - .description("") - // 筝莅丞舟篏篋 - .operateTime(now) - .createTime(now) - .updateTime(now) - .creator(currentEmployeeId) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()); - }); - } - } + //絖兊。罅筝紊 + +// // 筝莊喝緇絎鐚篁a莪b莪a鐚ゅ荀 +// if (stopStatus.contains(salaryArchive.getRunStatus())) { +// // 莊喝緇絎 +// salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// salaryArchive.setPayStartDate(today); +// salaryArchive.setPayEndDate(null); +// } +// salaryArchiveUpdateTodoList.add(salaryArchive); +// // 緇医絨沿紊倶亥莎蕁合 +// if (salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { +// // 決亥莎蕁合井 +// List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(salaryArchive.getId())).collect(Collectors.toList()); +// salaryArchiveItemValuelList.forEach(i -> { +// salaryArchiveItemAddTodos.add(SalaryArchiveItemPO.builder() +// .id(IdGenerator.generate()) +// .salaryArchiveId(salaryArchive.getId()) +// .employeeId(salaryArchive.getEmployeeId()) +// .effectiveTime(today) +// .adjustReason(SalaryArchiveItemAdjustReasonEnum.INIT.getValue()) +// .salaryItemId(i.getSalaryItemId()) +// .itemValue(i.getItemValue()) +// .description("") +// // 筝莅丞舟篏篋 +// .operateTime(now) +// .createTime(now) +// .updateTime(now) +// .creator(currentEmployeeId) +// .deleteType(NumberUtils.INTEGER_ZERO) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build()); +// }); +// } +// } } else { salaryArchiveAddTodoList.add(SalaryArchivePO.builder() .id(IdGenerator.generate()) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index 9af1e542f..1de92ab41 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -828,7 +828,8 @@ public class SalaryArchiveExcelBO extends Service { // 緇絲弱 || ((sa.getRunStatus().equals(SalaryArchiveStatusEnum.FIXED.getValue()) || sa.getRunStatus().equals(SalaryArchiveStatusEnum.SUSPEND.getValue())) && importHandleParam.isSuspendList()); if (isEnabled) { - if (importHandleParam.isInit()) { + if (importHandleParam.isInit() && + (importHandleParam.getKeepStatus() == null || importHandleParam.getKeepStatus().equals(Boolean.FALSE))) { sa.setRunStatus(SalaryArchiveStatusEnum.FIXED.getValue()); } // sa.setModifier(importHandleParam.getCurrentEmployeeId()); @@ -849,7 +850,12 @@ public class SalaryArchiveExcelBO extends Service { // .modifier(importHandleParam.getCurrentEmployeeId()) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeType(importHandleParam.isExtEmp() ? 1 : null) .build(); + // 絎action 篆倶筝阪絎 + if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { + salaryArchive.setRunStatus(SalaryArchiveStatusEnum.PENDING.getValue()); + } importHandleParam.getSalaryArchiveSaves().add(salaryArchive); } return salaryArchive; diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java index 072b45bce..2793f52b5 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java @@ -135,4 +135,7 @@ public class SalaryArchiveListDTO { */ private String archiveStatus; + //筝紙∴侃 0/null鐚筝肢侃 1鐚罨∴侃 + private Integer accountType; + } diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java index 06dc670c6..0f8e3a602 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java @@ -42,4 +42,9 @@ public class SalaryArchiveImportActionParam { * 莚贋 */ private String description; + + /** + * 罅f倶篆筝 + */ + private Boolean keepStatus; } diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java index a9bd77eb5..155cba89c 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java @@ -172,4 +172,9 @@ public class SalaryArchiveImportHandleParam { * 莎罅f-茣絅活 */ List salaryArchiveSobSaves; + + /** + * 莎罅f倶篆筝 + */ + Boolean keepStatus; } diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java index fd36884d3..bbbd2cc80 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java @@ -112,4 +112,10 @@ public class SalaryArchiveQueryParam extends BaseQueryParam { // ユ罩 private Date payEndDateEndDate; + // 莪莎桁ユ + private Date adjustSalaryStartDate; + + // 莪膸ユ + private Date adjustSalaryEndDate; + } diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java index 1e8fd59cc..4d92e4d67 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java @@ -41,6 +41,7 @@ public class SalaryFormulaEmployeeDTO { @SalaryFormulaVar(defaultLabel = "", labelId = 82465, dataType = "subcompanyBrowser") private String subcompanyName; + @SalaryFormulaVar(defaultLabel = "ID", labelId = 82465, dataType = "subcompanyBrowser") private Long subcompanyId; @@ -68,6 +69,11 @@ public class SalaryFormulaEmployeeDTO { @SalaryFormulaVar(defaultLabel = "倶", labelId = 98622, dataType = "string") private String statusName; + @SalaryFormulaVar(defaultLabel = "茣埇瓜", labelId = 98622, dataType = "string") + private String accountTypeName; + + @SalaryFormulaVar(defaultLabel = "茣埇瓜膽", labelId = 98622, dataType = "string") + private Integer accountType; //綏ュ @SalaryFormulaVar(defaultLabel = "綏ュ", labelId = 98622, dataType = "string") private String workcode; diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java index 32e088f1e..e0c63f108 100644 --- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java +++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSearchParam.java @@ -25,6 +25,9 @@ import java.util.Collection; @AllArgsConstructor public class SalaryItemSearchParam extends BaseQueryParam { + // 茣絅id + private Long salarySobId; + //腱 private String name; diff --git a/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java b/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java new file mode 100644 index 000000000..f8657019c --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/bo/SalaryApprovalBO.java @@ -0,0 +1,91 @@ +package com.engine.salary.entity.salarysob.bo; + +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.SalaryEntityUtil; +import org.apache.commons.lang.StringUtils; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalBO + * @date 2024/04/23 17:47 + * @description 莎茣絅莎絎≧ + */ +public class SalaryApprovalBO { + + public static SalaryApprovalDTO convert2DTO(SalaryApprovalRulePO salaryApprovalRulePO, List salaryItemList) { + if (salaryApprovalRulePO == null) { + return new SalaryApprovalDTO(); + } + Map salaryItemNameMap = SalaryEntityUtil.convert2Map(salaryItemList, SalaryItemPO::getId, SalaryItemPO::getName); + List approvalItemGroups = JsonUtil.parseList(salaryApprovalRulePO.getApprovalGroupSetting(), SalaryApprovalDTO.approvalItemGroup.class); + for (SalaryApprovalDTO.approvalItemGroup group : approvalItemGroups) { + for(SalaryApprovalDTO.approvalItem item : group.getApprovalItems()) { + item.setSalaryItemName(salaryItemNameMap.getOrDefault(item.getSalaryItemId(), "")); + } + } + + return SalaryApprovalDTO.builder() + .id(salaryApprovalRulePO.getId()) + .salarySobId(salaryApprovalRulePO.getSalarySobId()) + .isOpenApproval(salaryApprovalRulePO.getOpenApproval().equals(1)) + .approvalWorkflowUrl(StringUtils.isBlank(salaryApprovalRulePO.getWorkflowUrl()) ? "" : salaryApprovalRulePO.getWorkflowUrl()) + .approvalItemGroup(approvalItemGroups) + .build(); + + } + + /** + * 絨茣絅莎蕁合莅丞舟莉∽絎≧剛賢蕁合莅丞舟篆≧ + * @param aggregateBySalarySobId + */ + public static String sobItemAggregate2approvalGroupSetting(SalarySobItemAggregateDTO aggregateBySalarySobId) { + List groupList = new ArrayList<>(); + // 莎蕁合膸 + List itemGroups = aggregateBySalarySobId.getItemGroups(); + for (SalarySobItemGroupDTO sobItemGroupDTO: itemGroups) { + SalaryApprovalDTO.approvalItemGroup approvalGroup = new SalaryApprovalDTO.approvalItemGroup(); + approvalGroup.setGroupName(sobItemGroupDTO.getName()); + approvalGroup.setSorted(sobItemGroupDTO.getSortedIndex()); + List approvalItemList = new ArrayList<>(); + for (SalarySobItemDTO groupItem : sobItemGroupDTO.getItems()) { + SalaryApprovalDTO.approvalItem approvalItem = new SalaryApprovalDTO.approvalItem(); + approvalItem.setSalaryItemId(groupItem.getSalaryItemId()); + approvalItem.setSalaryItemName(groupItem.getName()); + approvalItem.setSorted(groupItem.getSortedIndex()); + approvalItemList.add(approvalItem); + } + approvalGroup.setApprovalItems(approvalItemList); + groupList.add(approvalGroup); + } + // 膠 + List items = aggregateBySalarySobId.getItems(); + List approvalItemList2 = new ArrayList<>(); + for (SalarySobItemDTO groupItem : items) { + SalaryApprovalDTO.approvalItem approvalItem = new SalaryApprovalDTO.approvalItem(); + approvalItem.setSalaryItemId(groupItem.getSalaryItemId()); + approvalItem.setSalaryItemName(groupItem.getName()); + approvalItem.setSorted(groupItem.getSortedIndex()); + approvalItemList2.add(approvalItem); + } + SalaryApprovalDTO.approvalItemGroup approvalGroup = new SalaryApprovalDTO.approvalItemGroup(); + approvalGroup.setGroupName("膠"); + approvalGroup.setSorted(groupList.size()); + approvalGroup.setApprovalItems(approvalItemList2); + groupList.add(approvalGroup); + return JsonUtil.toJsonString(groupList); + } + + +} diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java index 0111dbece..37a505a31 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java @@ -4,6 +4,7 @@ import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.SalaryCycleTypeEnum; +import com.engine.salary.util.SalaryDateUtil; import java.time.*; import java.util.Date; @@ -30,7 +31,8 @@ public class SalarySobCycleBO { if (salarySob == null) { return null; } - return SalarySobCycleDTO.builder() + + SalarySobCycleDTO salarySobCycleDTO = SalarySobCycleDTO.builder() .salarySobId(salarySob.getId()) .salaryMonth(salaryMonth) .taxCycle(buildCycle(salaryMonth, salarySob.getTaxCycleType())) @@ -38,6 +40,18 @@ public class SalarySobCycleBO { .salaryCycle(buildCycleDateRange(salaryMonth, salarySob.getSalaryCycleType(), salarySob.getSalaryCycleFromDay())) .attendCycle(buildCycleDateRange(salaryMonth, salarySob.getAttendCycleType(), salarySob.getAttendCycleFromDay())) .build(); + + salarySobCycleDTO.setSalaryDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSalaryMonth(), 1)); + salarySobCycleDTO.setTaxDate(SalaryDateUtil.toDate(salarySobCycleDTO.getTaxCycle(), 1)); + salarySobCycleDTO.setSocialSecurityDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSocialSecurityCycle(), 1)); + LocalDateRange salaryCycle = salarySobCycleDTO.getSalaryCycle(); + salarySobCycleDTO.setSalaryCycleFromDate(salaryCycle.getFromDate()); + salarySobCycleDTO.setSalaryCycleEndDate(salaryCycle.getEndDate()); + LocalDateRange attendCycle = salarySobCycleDTO.getAttendCycle(); + salarySobCycleDTO.setAttendCycleFromDate(attendCycle.getFromDate()); + salarySobCycleDTO.setAttendCycleEndDate(attendCycle.getEndDate()); + + return salarySobCycleDTO; } /** diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index 6b3f41896..743555800 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -57,35 +57,6 @@ public class SalarySobRangeBO { resultParams.add(queryParam); }); return resultParams; - - -// Map> rangeMap = SalaryEntityUtil.group2Map(salarySobRanges, SalarySobRangePO::getTargetType); -// List resultParams = Lists.newArrayListWithExpectedSize(rangeMap.size()); -// rangeMap.forEach((targetType, salarySobRangePOS) -> { -// List employeeStatus = salarySobRangePOS.stream() -// .map(e -> SalaryEmployeeStatusEnum.parseByValue(e.getEmployeeStatus())) -// .filter(Objects::nonNull) -// .map(e -> e.name().toLowerCase()) -// .distinct() -// .collect(Collectors.toList()); -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.ALL.name().toLowerCase())) { -// employeeStatus = Collections.emptyList(); -// } -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { -// employeeStatus = UserStatusEnum.getNormalStatus(); -// } -// if (employeeStatus.contains(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { -// employeeStatus = UserStatusEnum.getUnavailableStatus(); -// } -// TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(targetType); -// SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder() -// .targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY)) -// .targetIds(SalaryEntityUtil.properties(salarySobRangePOS, SalarySobRangePO::getTargetId)) -// .employeeStatus(employeeStatus) -// .build(); -// resultParams.add(queryParam); -// }); -// return resultParams; } /** @@ -117,7 +88,7 @@ public class SalarySobRangeBO { return SalarySobRangeListDTO.builder() .id(salarySobRangePO.getId()) .salarySobId(salarySobRangePO.getSalarySobId()) - .targetType(targetTypeEnum != null ? targetTypeEnum.getValue() : -1) + .targetType(targetTypeEnum) .targetTypeName(Optional.ofNullable(targetTypeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) @@ -125,6 +96,7 @@ public class SalarySobRangeBO { .target(salarySobRangePO.getTarget()) .targetName(buildTargetName(salarySobRangePO, employeeComInfoMap, departmentComInfoMap, subCompanyComInfoMap, positionComInfoMap)) .employeeStatus(employeeStatusesStr) + .status(parseByStatuses(salarySobRangePO.getEmployeeStatuses())) .build(); }) .collect(Collectors.toList()); @@ -150,6 +122,20 @@ public class SalarySobRangeBO { return sb.toString(); } + private static String parseByStatuses(String employeeStatuses) { + String[] split = employeeStatuses.split(","); + List enumsList = Arrays.asList(split).stream().map(item -> Integer.valueOf(item)).collect(Collectors.toList()); + List salaryEmployeeStatusEnums = SalaryEmployeeStatusEnum.parseByValues(enumsList); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < salaryEmployeeStatusEnums.size(); i++) { + sb.append(salaryEmployeeStatusEnums.get(i)); + if (i + 1 != salaryEmployeeStatusEnums.size()) { + sb.append(","); + } + } + return sb.toString(); + } + /** * 茹f莎茣絅篋阪岩賢絲壕院腱逸醇篋阪腱違腱違絏篏腱謂鐚 * diff --git a/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java new file mode 100644 index 000000000..143d98fca --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/dto/SalaryApprovalDTO.java @@ -0,0 +1,78 @@ +package com.engine.salary.entity.salarysob.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 莎絎≧壕丞舟茵 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xuzhuoyan + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalDTO { + + // 筝脂id + private Long id; + + // 莎茣絅id + private Long salarySobId; + + // 綣絎≧ + private Boolean isOpenApproval; + + // 絎≧号腮医 + private String approvalWorkflowUrl; + + // 絎≧拷々篆≧ + private List approvalItemGroup; + + private Boolean canEdit; + + /** + * 絎≧拷々篆≧膸綵√ + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class approvalItemGroup { + + // 膸腱 + private String groupName; + + // 蕁合篆≧ + private List approvalItems; + + // 綺 + private Integer sorted; + } + + /** + * 絎≧壕莎蕁合 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class approvalItem { + // 莎蕁合id + private Long salaryItemId; + + // 莎蕁合腱 + private String salaryItemName; + + // 綺 + private Integer sorted; + + } +} diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java index b5060f113..1d6d234dc 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobRangeListDTO.java @@ -37,7 +37,7 @@ public class SalarySobRangeListDTO { * * @see TargetTypeEnum */ - private Integer targetType; + private TargetTypeEnum targetType; @SalaryTableColumn(text = "絲壕院膠糸", width = "10%", column = "targetTypeName") @TableTitle(title = "絲壕院膠糸", dataIndex = "targetTypeName", key = "targetTypeName") @@ -54,4 +54,6 @@ public class SalarySobRangeListDTO { @SalaryTableColumn(text = "綏ョ倶", width = "10%", column = "employeeStatus") @TableTitle(title = "綏ョ倶", dataIndex = "employeeStatus", key = "employeeStatus") private String employeeStatus; + + private String status; } diff --git a/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java b/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java new file mode 100644 index 000000000..e3ef6882d --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/param/ApprovalRequestSaveParam.java @@ -0,0 +1,27 @@ +package com.engine.salary.entity.salarysob.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryApprovalQueryParam + * @author Harryxzy + * @date 2024/4/23 15:05 + * @description 莎絎≧号腮id篆絖 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ApprovalRequestSaveParam { + + // 羌腮id + @DataCheck(require = true, message = "羌腮id筝巡減腥") + private String requestId; + + // 悟莅医id + private Long salaryAcctRecordId; +} diff --git a/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java new file mode 100644 index 000000000..770bb7933 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/param/SalaryApprovalQueryParam.java @@ -0,0 +1,24 @@ +package com.engine.salary.entity.salarysob.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SalaryApprovalQueryParam + * @author Harryxzy + * @date 2024/4/23 15:05 + * @description 莎絎≧壕丞舟ヨ√ + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalQueryParam { + + // 莎茣絅id + @DataCheck(require = true, message = "莎茣絅ID筝莅娯減腥") + private Long salarySobId; +} diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java index a1a33e2f4..aadd43306 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java @@ -4,6 +4,7 @@ import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidTypeEnum; import lombok.Data; @@ -22,6 +23,9 @@ import java.util.List; //莎茣絅篋阪岩絖") public class SalarySobRangeSaveParam { + @DataCheck(require = true, message = "ID筝莅娯減腥",runtime = {RuntimeTypeEnum.UPDATE}) + private Long id; + //莎茣絅id @DataCheck(require = true, message = "莎茣絅ID筝莅娯減腥") @ElogTransform( name = "莎茣絅id" ) diff --git a/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java new file mode 100644 index 000000000..8683696a4 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/po/SalaryApprovalRulePO.java @@ -0,0 +1,70 @@ +package com.engine.salary.entity.salarysob.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRulePO + * @date 2024/04/23 17:31 + * @description 莎悟絎≧壕 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryApprovalRulePO { + /** + * 筝脂id + */ + private Long id; + + /** + * 莎茣絅id + */ + private Long salarySobId; + + /** + * 綣綏ヨ絎≧ + */ + private Integer openApproval; + + /** + * 絎≧壕莎蕁合莅丞舟 + */ + private String approvalGroupSetting; + + /** + * 絎≧号腮医 + */ + private String workflowUrl; + + /** + * 綮堺狗 + */ + private Date createTime; + + /** + * 綮坂査id + */ + private Long creator; + + private Integer deleteType; + + /** + * 篆号狗 + */ + private Date updateTime; + + //筝脂id + private Collection ids; + + //莎茣絅id + private Collection salarySobIds; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java new file mode 100644 index 000000000..56648ec45 --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java @@ -0,0 +1,18 @@ +package com.engine.salary.entity.setting.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingDTO { + + private String name; + + private String value; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java new file mode 100644 index 000000000..24570f54a --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -0,0 +1,69 @@ +package com.engine.salary.entity.setting.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.common.SharedTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 莎絽絅茵 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_page_list_template +public class PageListTemplateDTO { + + + private Long id; + + + /** + * 罔≧水腱 + */ + @TableTitle(title = "罔≧水腱",dataIndex = "name",key = "name") + private String name; + + /** + * 蕁級 + */ + private String page; + + /** + * 莅丞舟 + */ + private List setting; + + /** + * 延昆,0鐚1 + * @see SharedTypeEnum + */ + private Integer sharedType; + + @TableTitle(title = "茹",dataIndex = "sharedTypeName",key = "sharedTypeName") + private String sharedTypeName; + + /** + * 膤紫罔≧ + */ + private Integer systemType; + + @TableTitle(title = "膤紫罔≧",dataIndex = "systemTypeName",key = "systemTypeName") + private String systemTypeName; + + @TableTitle(title = "",dataIndex = "limits",key = "limits") + private String limits; + + /** + * + */ + private List limitIds; + + private Boolean canEdit; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java new file mode 100644 index 000000000..7826c24ce --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDetailDTO.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.setting.dto; + +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateDetailDTO { + private List setting; + private List checked; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java new file mode 100644 index 000000000..5f8072d19 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java @@ -0,0 +1,21 @@ +package com.engine.salary.entity.setting.param; + +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 PageListColumnsQueryParam { + + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java new file mode 100644 index 000000000..1825719e8 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java @@ -0,0 +1,23 @@ +package com.engine.salary.entity.setting.param; + +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 PageListSettingQueryParam { + + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingResetParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingResetParam.java new file mode 100644 index 000000000..6b110acd8 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingResetParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.setting.param; + +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 PageListSettingResetParam { + /** + * 蕁級鐚0鐚莎膸 + */ + @DataCheck(require = true,message = "莚潔蕁級") + private String page; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java new file mode 100644 index 000000000..e164d4889 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java @@ -0,0 +1,37 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 莎絽絅茵 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingSaveParam { + + /** + * 藥莅よ丞舟 + */ + @DataCheck(require = true,message = "筝咲莅よ丞舟") + private Integer defaultSetting; + + /** + * 蕁級鐚0鐚莎膸 + */ + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + + /** + * 莅丞舟 + */ + @DataCheck(require = true,message = "莚潔莅丞舟") + private List setting; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java new file mode 100644 index 000000000..3f8d05fd3 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.setting.param; + +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 PageListTemplateChangeParam { + + /** + * 蕁級鐚0鐚莎膸 + */ + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + + /** + * 罔≧id + */ + @DataCheck(require = true,message = "莚潔罔≧") + private Long templateId; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java new file mode 100644 index 000000000..d02ac39b4 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateDeleteParam.java @@ -0,0 +1,18 @@ +package com.engine.salary.entity.setting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateDeleteParam { + private List ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java new file mode 100644 index 000000000..4170f5d2a --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java @@ -0,0 +1,28 @@ +package com.engine.salary.entity.setting.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 PageListTemplateQueryParam extends BaseQueryParam { + + private Long id; + + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + + /** + * 絖罧name + */ + private String name; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java new file mode 100644 index 000000000..1ef45247a --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java @@ -0,0 +1,43 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 莎絽絅茵 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateSaveParam { + private Long id; + + /** + * 蕁級鐚0鐚莎膸 + */ + @DataCheck(require = true,message = "莚潔蕁級") + private String page; + + /** + * 罔≧水腱 + */ + @DataCheck(require = true,message = "莚潔罔≧水腱") + private String name; + + @DataCheck(require = true,message = "莚潔延昆膠糸") + private Integer sharedType; + + private List limitIds; + + /** + * 莅丞舟 + */ + @DataCheck(require = true,message = "莚潔莅丞舟") + private List setting; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageLinkPO.java b/src/com/engine/salary/entity/setting/po/PageLinkPO.java new file mode 100644 index 000000000..7037abe77 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageLinkPO.java @@ -0,0 +1,70 @@ +package com.engine.salary.entity.setting.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 PageLinkPO { + + @ElogTransform(name = "id") + private Long id; + + @ElogTransform(name = "篋阪id") + private Long employeeId; + + /** + * 蕁級 + */ + @ElogTransform(name = "蕁級") + private String page; + + /** + * 蕁級∽─id + */ + @ElogTransform(name = "蕁級∽─id") + private Long templateId; + + /** + * 腱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/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java new file mode 100644 index 000000000..5d706166a --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -0,0 +1,75 @@ +package com.engine.salary.entity.setting.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 +//hrsa_page_list_setting +public class PageListSettingPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 蕁級鐚0鐚莎膸 + */ + @ElogTransform(name = "蕁級鐚0鐚莎膸") + private String page; + + /** + * 莅丞舟 + */ + @ElogTransform(name = "莅丞舟") + private List setting; + + /** + * 藥莅よ丞舟 + */ + private Integer defaultSetting; + + + /** + * 贋井狗 + */ + @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 + */ + @ElogTransform(name = "腱ID") + private String tenantKey; + + + //筝脂id + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java new file mode 100644 index 000000000..1b2f727b4 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java @@ -0,0 +1,103 @@ +package com.engine.salary.entity.setting.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.common.SharedTypeEnum; +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 +//hrsa_page_list_template +public class PageListTemplatePO { + + + @ElogTransform(name = "id") + private Long id; + + + /** + * 罔≧水腱 + */ + @ElogTransform(name = "罔≧水腱") + private String name; + + /** + * 蕁級 + */ + @ElogTransform(name = "蕁級") + private String page; + + /** + * 莅丞舟 + */ + @ElogTransform(name = "莅丞舟") + private List setting; + + /** + * 延昆,0鐚1 + * @see SharedTypeEnum + */ + @ElogTransform(name = "茹э1腱鐚0延昆") + private Integer sharedType; + + /** + * 膤紫罔≧ + */ + @ElogTransform(name = "膤紫罔≧,0鐚1") + private Integer systemType; + + + /** + * + */ + @ElogTransform(name = "") + private List limitIds; + + /** + * 腱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; + + private Boolean checked; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java b/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java index b8e56f090..d348af32b 100644 --- a/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java +++ b/src/com/engine/salary/entity/siaccount/param/InsuranceAccountDetailParam.java @@ -44,6 +44,8 @@ public class InsuranceAccountDetailParam extends BaseQueryParam { private String workcode; private List departmentIds; + private List fixedDepartmentIds; private List subCompanyIds; + private List fixedSubCompanyIds; } diff --git a/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java b/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java index 0125705dd..7b42531c7 100644 --- a/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java +++ b/src/com/engine/salary/entity/siaccount/param/SupplementAccountBaseParam.java @@ -87,4 +87,15 @@ public class SupplementAccountBaseParam { * 茵ョ軸膠糸 */ private String supplementType; + + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java index 362815eef..310bd8e17 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java @@ -129,5 +129,13 @@ public class InsuranceAccountBatchPO { @ElogTransform(name = "筝腮g軸箙>査id") private Long paymentOrganization; - + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java index aadf8b4bb..310009f9c 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java @@ -328,4 +328,14 @@ public class InsuranceAccountDetailPO { */ @ElogTransform(name = "筝腮g軸箙>査") private Long paymentOrganization; + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java index dc8c1c2c0..8d6d5254f 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java @@ -275,4 +275,15 @@ public class InsuranceAccountDetailTempPO { * 筝腮g軸箙>査 */ private Long paymentOrganization; + + + private String subcompanyName; + private Long subcompanyId; + private String departmentName; + private Long departmentId; + private String jobtitleName; + private Long jobtitleId; + private String jobcall; + private Long jobcallId; + private String status; } diff --git a/src/com/engine/salary/entity/siexport/po/AccountExportPO.java b/src/com/engine/salary/entity/siexport/po/AccountExportPO.java index 73c82c82e..cb7324228 100644 --- a/src/com/engine/salary/entity/siexport/po/AccountExportPO.java +++ b/src/com/engine/salary/entity/siexport/po/AccountExportPO.java @@ -22,8 +22,12 @@ public class AccountExportPO extends InsuranceAccountDetailPO { @I18n private String departmentName; + @I18n + private String fixedDepartmentName; + private Integer userStatus; + private Integer fixedUserStatus; private String workcode; } diff --git a/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java index ff8e9398c..c9ed91a55 100644 --- a/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java +++ b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java @@ -41,4 +41,14 @@ public class InsuranceSchemeReqParam { private WelfareTypeEnum welfareTypeEnum; private List ids; + + /** + * 篆号。罅井筝坂筝 + */ + private Boolean changeData; + + /** + * ♂罅f筝羯∴恭筝筝 + */ + private Boolean validate; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index 226ed1f54..bc3b52469 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -312,6 +312,7 @@ public class TaxAgentBO { .target(taxAgentManageRange.getTarget()) .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap)) .employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus())) + .status(buildStatus(taxAgentManageRange.getEmployeeStatus())) .build(); }) .collect(Collectors.toList()); @@ -327,6 +328,14 @@ public class TaxAgentBO { .collect(Collectors.joining(",")); } + private static String buildStatus( String employeeStatus) { + List employeeStatusList = JsonUtil.parseList(employeeStatus, String.class); + if (CollectionUtils.isEmpty(employeeStatusList)) { + return StringUtils.EMPTY; + } + return String.join(",", employeeStatusList); + } + /** * 綮阪壕院 * diff --git a/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java b/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java index d87bf0a3b..db8f3411f 100644 --- a/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java +++ b/src/com/engine/salary/entity/taxagent/dto/TaxAgentManageRangeListDTO.java @@ -59,4 +59,6 @@ public class TaxAgentManageRangeListDTO { ) @TableTitle(title ="綏ョ倶",key = "employeeStatus",dataIndex = "employeeStatus") private String employeeStatus; + + private String status; } diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java index 2a8ff4587..2f4c4f749 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentManageRangeSaveParam.java @@ -20,6 +20,8 @@ import java.util.List; @Data public class TaxAgentManageRangeSaveParam { + private Long id; + /** * Ű初 活篋阪/篁岩賢 */ diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java index b64ac8b12..8432faa61 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java @@ -1,12 +1,15 @@ package com.engine.salary.entity.taxdeclaration.bo; +import com.engine.salary.entity.datacollection.po.*; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO; import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO; +import com.engine.salary.enums.datacollection.TaxFreeTypeEnum; import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; +import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -14,6 +17,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.general.Util; +import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; @@ -30,7 +34,8 @@ public class TaxDeclarationRequest { public static Map convert2RequestParam(List taxReportColumns, List taxDeclarations, List taxDeclarationValues, - List employeeDeclares) { + List employeeDeclares, + Map> taxFreeMap) { Map> objRequestParam = Maps.newHashMap(); Map>> listRequestParam = Maps.newHashMap(); Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory); @@ -126,6 +131,8 @@ public class TaxDeclarationRequest { List> employeeRequestParams = listRequestParam.computeIfAbsent("txq", k -> Lists.newArrayList()); employeeRequestParams.add(employeeRequestParam); } + // 銀腮iら茵 + buildOtherDeductionDetailParams(taxFreeMap, listRequestParam, employeeDeclare, incomeCategoryEnum, employeeRequestParam); } } @@ -135,6 +142,148 @@ public class TaxDeclarationRequest { return requestParam; } + private static void buildOtherDeductionDetailParams(Map> taxFreeMap, Map>> listRequestParam, EmployeeDeclarePO employeeDeclare, IncomeCategoryEnum incomeCategoryEnum, Map employeeRequestParam) { + if (new BigDecimal(employeeRequestParam.getOrDefault("mssd", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map freeIncomeMap = taxFreeMap.get(TaxFreeTypeEnum.FREE_INCOME); + List poList = (List) freeIncomeMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(poList)) { + List> paramMaps = new ArrayList<>(); + for (FreeIncomePO po : poList) { + Map map = new HashMap<>(); + // 紮 + map.put("xm", employeeDeclare.getEmployeeName()); + // 莚篁句瓜 + map.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + // 莚篁九埇 + map.put("zzhm", employeeDeclare.getCardNum()); + // 緇蕁合 + map.put("sdxm", incomeCategoryEnum.getDefaultLabel()); + map.put("jmsx", po.getFreeItem()); + map.put("jmxz", po.getFreeProperty()); + map.put("sjkcje", po.getFreeAmount()); + paramMaps.add(map); + } + listRequestParam.put("msfblb", paramMaps); + } + } + + String string = employeeRequestParam.getOrDefault("syjkbx", "0").toString(); + System.out.println(); + + if (new BigDecimal(employeeRequestParam.getOrDefault("syjkbx", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map healthInsuranceMap = taxFreeMap.get(TaxFreeTypeEnum.HEALTH_INSURANCE); + List pos = (List) healthInsuranceMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(pos)) { + List> paramMaps = new ArrayList<>(); + for (HealthInsurancePO healthInsurancePO : pos) { + Map map = new HashMap<>(); + // 紮 + map.put("xm", employeeDeclare.getEmployeeName()); + // 莚篁句瓜 + map.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + // 莚篁九埇 + map.put("zzhm", employeeDeclare.getCardNum()); + // 緇蕁合 + map.put("sdxm", incomeCategoryEnum.getDefaultLabel()); + map.put("bdsxrq",SalaryDateUtil.getFormatLocalDate(healthInsurancePO.getEffectiveDate()) ); + map.put("sysbm", healthInsurancePO.getIdentificationNumber()); + map.put("ndbf", healthInsurancePO.getYearPremium()); + map.put("ydbf", healthInsurancePO.getMonthPremium()); + map.put("sjkcje", healthInsurancePO.getCurrentDeduction()); + paramMaps.add(map); + } + listRequestParam.put("syjkbxfblb", paramMaps); + } + } + if (new BigDecimal(employeeRequestParam.getOrDefault("syylbx", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map posMap = taxFreeMap.get(TaxFreeTypeEnum.ENDOWMENT_INSURANCE); + List pos = (List) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(pos)) { + List> paramMaps = new ArrayList<>(); + for (EndowmentInsurancePO po : pos) { + Map map = new HashMap<>(); + // 紮 + map.put("xm", employeeDeclare.getEmployeeName()); + // 莚篁句瓜 + map.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + // 莚篁九埇 + map.put("zzhm", employeeDeclare.getCardNum()); + // 緇蕁合 + map.put("sdxm", incomeCategoryEnum.getDefaultLabel()); + map.put("sbkcyf", SalaryDateUtil.getFormatYearMonth((po.getDeductionMonth()))); + map.put("syylzhbh", po.getAccountNumber()); + map.put("bsjym", po.getCheckCode()); + map.put("ndbf", po.getYearPremium()); + map.put("ydbf", po.getMonthPremium()); + map.put("sjkcje", po.getCurrentDeduction()); + paramMaps.add(map); + } + listRequestParam.put("syjkbxfblb", paramMaps); + } + } + if (new BigDecimal(employeeRequestParam.getOrDefault("zykcjze", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map posMap = taxFreeMap.get(TaxFreeTypeEnum.GRANT_DONATION); + List pos = (List) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(pos)) { + List> paramMaps = new ArrayList<>(); + for (GrantDonationPO po : pos) { + Map map = new HashMap<>(); + // 紮 + map.put("xm", employeeDeclare.getEmployeeName()); + // 莚篁句瓜 + map.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + // 莚篁九埇 + map.put("zzhm", employeeDeclare.getCardNum()); + // 緇蕁合 + map.put("sdxm", incomeCategoryEnum.getDefaultLabel()); + map.put("szdwmc", po.getRecipientName()); + map.put("szdwnsrsbh", po.getTaxCode()); + map.put("jzpzh", po.getDonationNumber()); + if (po.getDonateDate() != null) { + map.put("jzrq", SalaryDateUtil.getFormatLocalDate(po.getDonateDate())); + } + map.put("jzje", po.getDonateAmount()); + map.put("kcbl", po.getDeductionProportion()); + map.put("sjkcje", po.getActualDeduction()); + paramMaps.add(map); + } + listRequestParam.put("zykcjzefb", paramMaps); + } + } + + if (new BigDecimal(employeeRequestParam.getOrDefault("jmse", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map posMap = taxFreeMap.get(TaxFreeTypeEnum.DERATE_DEDUCTION); + List pos = (List) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(pos)) { + List> paramMaps = new ArrayList<>(); + for (DerateDeductionPO po : pos) { + Map map = new HashMap<>(); + // 紮 + map.put("xm", employeeDeclare.getEmployeeName()); + // 莚篁句瓜 + map.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + // 莚篁九埇 + map.put("zzhm", employeeDeclare.getCardNum()); + // 緇蕁合 + map.put("sdxm", incomeCategoryEnum.getDefaultLabel()); + map.put("jmsx", po.getDerateItem()); + map.put("jmxz", po.getDerateProperty()); + map.put("sjkcje", po.getDerateAmount()); + paramMaps.add(map); + } + listRequestParam.put("jmfblb", paramMaps); + } + } + + if (new BigDecimal(employeeRequestParam.getOrDefault("qt", "0").toString()).compareTo(new BigDecimal("0")) > 0) { + Map posMap = taxFreeMap.get(TaxFreeTypeEnum.OTHER_DERATE_DEDUCTION); + List pos = (List) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle())); + if (CollectionUtils.isNotEmpty(pos)) { + employeeRequestParam.put("bz", pos.get(0).getRemark()); + } + } + } + private static Map convert2RequestParam(IncomeCategoryEnum incomeCategoryEnum, List taxReportColumns, TaxDeclarationValuePO taxDeclarationValue, diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java index f5e8acf8c..e99e15650 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java @@ -57,7 +57,6 @@ public class TaxDeclarationValueList { * @param taxReportColumns * @param taxDeclarationValues * @param simpleEmployees - * @param simpleUserInfos * @param extEmployees * @return */ @@ -66,7 +65,6 @@ public class TaxDeclarationValueList { List taxDeclarationValues, List employeeDeclares, List simpleEmployees, - List simpleUserInfos, List extEmployees, boolean cnKey) { if (CollectionUtils.isEmpty(simpleEmployees)) { return Collections.emptyList(); @@ -76,8 +74,6 @@ public class TaxDeclarationValueList { Map simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId); // 綏ユラ篆≧т査id膠 Map employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId); - // 綏ヤ肩篋坂拭т査id膠 - Map simpleUserInfoMap = SalaryEntityUtil.convert2Map(simpleUserInfos, e -> e.getEmployeeId()); // 膤紫綏ユт査id膠 Map extEmployeeMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmpPO::getId); for (TaxDeclarationValuePO taxDeclarationValue : taxDeclarationValues) { @@ -90,23 +86,32 @@ public class TaxDeclarationValueList { } EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclarationValue.getEmployeeId()); if (employeeDeclare != null) { + DataCollectionEmployee simpleUserInfo = simpleEmployeeMap.get(taxDeclarationValue.getEmployeeId()); dataMap.put(cnKey ? "綏ュ" : "jobNum", employeeDeclare.getJobNum()); dataMap.put(cnKey ? "紮" : "username", employeeDeclare.getEmployeeName()); dataMap.put(cnKey ? "莚篁句瓜" : "cardType",CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel() ); dataMap.put(cnKey ? "莚篁九埇" : "cardNum", employeeDeclare.getCardNum()); + dataMap.put(cnKey ? "" : "departmentName", simpleUserInfo == null ? "" : simpleUserInfo.getDepartmentName()); + dataMap.put(cnKey ? "阪" : "mobile", simpleUserInfo == null ? "" : simpleUserInfo.getMobile()); + dataMap.put(cnKey ? "莚篁九埇" : "idNo", simpleUserInfo == null ? "" : simpleUserInfo.getIdNo()); } else if (taxDeclarationValue.getEmployeeType() == null || Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())) { DataCollectionEmployee simpleEmployee = simpleEmployeeMap.get(taxDeclarationValue.getEmployeeId()); - DataCollectionEmployee simpleUserInfo = simpleUserInfoMap.get(taxDeclarationValue.getEmployeeId()); dataMap.put(cnKey ? "綏ュ" : "jobNum", simpleEmployee.getWorkcode()); dataMap.put(cnKey ? "紮" : "username", simpleEmployee.getUsername()); dataMap.put(cnKey ? "莚篁句瓜" : "cardType", SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())); - dataMap.put(cnKey ? "莚篁九埇" : "cardNum", simpleUserInfo == null ? "" : simpleUserInfo.getIdNo()); + dataMap.put(cnKey ? "莚篁九埇" : "cardNum", simpleEmployee.getIdNo()); + dataMap.put(cnKey ? "" : "departmentName", simpleEmployee.getDepartmentName()); + dataMap.put(cnKey ? "阪" : "mobile", simpleEmployee.getMobile()); + dataMap.put(cnKey ? "莚篁九埇" : "idNo", simpleEmployee.getIdNo()); } else { ExtEmpPO extEmployee = extEmployeeMap.get(taxDeclarationValue.getEmployeeId()); dataMap.put(cnKey ? "綏ュ" : "jobNum", extEmployee.getWorkcode()); dataMap.put(cnKey ? "紮" : "username", extEmployee.getUsername()); dataMap.put(cnKey ? "莚篁句瓜" : "cardType", SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())); dataMap.put(cnKey ? "莚篁九埇" : "cardNum", extEmployee.getIdNo()); + dataMap.put(cnKey ? "" : "departmentName", extEmployee == null ? "" : extEmployee.getDepartmentName()); + dataMap.put(cnKey ? "阪" : "mobile", extEmployee == null ? "" : extEmployee.getMobile()); + dataMap.put(cnKey ? "莚篁九埇" : "idNo", extEmployee == null ? "" : extEmployee.getIdNo()); } tableDataList.add(dataMap); } diff --git a/src/com/engine/salary/entity/taxdeclaration/param/DownloadTemplateParam.java b/src/com/engine/salary/entity/taxdeclaration/param/DownloadTemplateParam.java index d9371b3fd..7037ae964 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/DownloadTemplateParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/DownloadTemplateParam.java @@ -23,4 +23,8 @@ public class DownloadTemplateParam { * 絲弱ユ篁id */ String imageId; + + + //筝莉醇─炊倶絽榊ー井 + private boolean hasData; } diff --git a/src/com/engine/salary/enums/AccountTypeEnum.java b/src/com/engine/salary/enums/AccountTypeEnum.java new file mode 100644 index 000000000..34368239c --- /dev/null +++ b/src/com/engine/salary/enums/AccountTypeEnum.java @@ -0,0 +1,68 @@ +package com.engine.salary.enums; + +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; + +/** + * 茣埇瓜 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public enum AccountTypeEnum implements BaseEnum { + + MAIN(0, "筝肢侃", 1), + SECOND(1, "罨∴侃", 1); + + private Integer value; + private String defaultLabel; + private int labelId; + + + AccountTypeEnum(Integer 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 String getDefaultLabelByValue(Integer value) { + if (value == null) { + return MAIN.defaultLabel; + } + Optional optional = Arrays.stream(AccountTypeEnum.values()).filter(r -> r.getValue().equals(value)).findFirst(); + return optional.isPresent() ? optional.get().defaultLabel : ""; + } + + + public static AccountTypeEnum parseByValue(Integer value) { + if (value == null) { + return MAIN; + } + + for (AccountTypeEnum statusEnum : AccountTypeEnum.values()) { + if (Objects.equals(statusEnum.getValue(), value)) { + return statusEnum; + } + } + return MAIN; + } + +} diff --git a/src/com/engine/salary/enums/common/SharedTypeEnum.java b/src/com/engine/salary/enums/common/SharedTypeEnum.java new file mode 100644 index 000000000..286962c24 --- /dev/null +++ b/src/com/engine/salary/enums/common/SharedTypeEnum.java @@ -0,0 +1,48 @@ +package com.engine.salary.enums.common; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Objects; + + +public enum SharedTypeEnum implements BaseEnum { + PRIVATE(1, "腱", 86569), + PUBLIC(0, "延昆", 86568); + + private Integer value; + + private String defaultLabel; + + private Integer labelId; + + SharedTypeEnum(Integer value, String defaultLabel, Integer labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public Integer getValue() { + return this.value; + } + + @Override + public Integer getLabelId() { + return this.labelId; + } + + @Override + public String getDefaultLabel() { + return this.defaultLabel; + } + + public static SharedTypeEnum parseByValue(Integer value) { + for (SharedTypeEnum enums : SharedTypeEnum.values()) { + if (Objects.equals(enums.getValue(), value)) { + return enums; + } + } + return PUBLIC; + } +} diff --git a/src/com/engine/salary/enums/datacollection/EnumDeductionDataSource.java b/src/com/engine/salary/enums/datacollection/EnumDeductionDataSource.java new file mode 100644 index 000000000..cbec3e616 --- /dev/null +++ b/src/com/engine/salary/enums/datacollection/EnumDeductionDataSource.java @@ -0,0 +1,70 @@ +package com.engine.salary.enums.datacollection; + +import java.util.HashMap; +import java.util.Map; + + +/** + * 膠私蕁号iゆ井ユ + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public enum EnumDeductionDataSource { + /** + * 篋阪轡莨 + */ + MANUAL(1, "篋阪轡莨", 153339), + /** + * 膾粋キ + */ + ONLINE(2, "膾粋キ", 153340), + /** + * 莅∞ + */ + AUTO_CALC(3, "莅∞", 233727), + ; + + private int value; + + private String defaultLabel; + + private int labelId; + + EnumDeductionDataSource(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + private static final Map VALUE_NAME_MAP; + + static { + final EnumDeductionDataSource[] values = EnumDeductionDataSource.values(); + VALUE_NAME_MAP = new HashMap<>(values.length); + for (EnumDeductionDataSource value : values) { + VALUE_NAME_MAP.put(value.getValue(), value); + } + } + + public Integer getValue() { + return value; + } + + public Integer getLabelId() { + return labelId; + } + + public static EnumDeductionDataSource parseByValue(Integer index) { + if (index == null) { + return null; + } + return VALUE_NAME_MAP.get(index); + } + + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/salary/enums/datacollection/PersonalPensionVoucherTypeEnum.java b/src/com/engine/salary/enums/datacollection/PersonalPensionVoucherTypeEnum.java new file mode 100644 index 000000000..7646c3246 --- /dev/null +++ b/src/com/engine/salary/enums/datacollection/PersonalPensionVoucherTypeEnum.java @@ -0,0 +1,52 @@ +package com.engine.salary.enums.datacollection; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Optional; + +/** + * 筝篋阪肢莚膠糸 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PersonalPensionVoucherTypeEnum implements BaseEnum { + YEAR(1, "綺", 173218), + MONTH(2, "綛翫墾", 157163); + + private int value; + + private String defaultLabel; + + private int labelId; + + PersonalPensionVoucherTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public Integer getValue() { + return value; + } + + public String getDefaultLabel() { + return defaultLabel; + } + + public Integer getLabelId() { + return labelId; + } + + public static String getDefaultLabelByValue(Integer value) { + Optional optional = Arrays.stream(PersonalPensionVoucherTypeEnum.values()).filter(r -> Integer.valueOf(r.getValue()).equals(value)).findFirst(); + return optional.isPresent() ? optional.get().getDefaultLabel() : ""; + } + + public static PersonalPensionVoucherTypeEnum parseByValue(int value) { + return Arrays.stream(values()).filter(e -> e.getValue() == value).findFirst().orElse(null); + } +} diff --git a/src/com/engine/salary/enums/datacollection/TaxFreeTypeEnum.java b/src/com/engine/salary/enums/datacollection/TaxFreeTypeEnum.java new file mode 100644 index 000000000..1edf03f98 --- /dev/null +++ b/src/com/engine/salary/enums/datacollection/TaxFreeTypeEnum.java @@ -0,0 +1,62 @@ +package com.engine.salary.enums.datacollection; + +import java.util.HashMap; +import java.util.Map; + +/** + * 腮綵罅g倶 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public enum TaxFreeTypeEnum { + + FREE_INCOME(32, "腮九", 105147), + HEALTH_INSURANCE(16, "筝ュ嵯篆", 91238), + ENDOWMENT_INSURANCE(8, "腮綮九肢篆", 91239), + GRANT_DONATION(4, "篋iょ莎蘂", 91240), + DERATE_DEDUCTION(2, "腮蘂", 102810), + OTHER_DERATE_DEDUCTION(1, "銀", 84500), + PERSONAL_PENSION(64, "筝篋阪肢", 252256), + ; + + private final Integer value; + + private final String defaultLabel; + + private final Integer labelId; + + private static final Map VALUE_NAME_MAP; + + static { + final TaxFreeTypeEnum[] values = TaxFreeTypeEnum.values(); + VALUE_NAME_MAP = new HashMap<>(values.length); + for (TaxFreeTypeEnum value : values) { + VALUE_NAME_MAP.put(value.name(), value); + } + } + + TaxFreeTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public String getDefaultLabel() { + return defaultLabel; + } + + public Integer getValue() { + return value; + } + + public Integer getLabelId() { + return labelId; + } + + public static TaxFreeTypeEnum parse(String defaultLabel) { + return VALUE_NAME_MAP.get(defaultLabel); + } +} diff --git a/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java b/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java index 4b0af0325..095d3b155 100644 --- a/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java +++ b/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java @@ -16,7 +16,9 @@ import java.util.Objects; public enum CardTypeEnum implements BaseEnum { RESIDENT_IDENTITY_CARDS(0, "絮羂荳篁処", 105564), - FOREIGN_PASSPORT(1, "紊醇ょ", 105564); + FOREIGN_PASSPORT(1, "紊醇ょ", 105564), + HM_PASSPORT(2, "羝羮喝羂ュ育茵莚", 105564), + T_PASSPORT(3, "佀江絮羂ュ紊ч茵莚", 105564); CardTypeEnum(int value, String defaultLabel, int labelId) { this.value = value; diff --git a/src/com/engine/salary/enums/salarybill/MonthTypeEnum.java b/src/com/engine/salary/enums/salarybill/MonthTypeEnum.java new file mode 100644 index 000000000..ea6f8b34a --- /dev/null +++ b/src/com/engine/salary/enums/salarybill/MonthTypeEnum.java @@ -0,0 +1,82 @@ +package com.engine.salary.enums.salarybill; + +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 MonthTypeEnum implements BaseEnum { + + SALARY_DATE(0, "莎絮", 93286), + SEND_DATE(1, "丈ユ", 93212); + + private int value; + + private String defaultLabel; + + private int labelId; + + MonthTypeEnum(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 String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + MonthTypeEnum[] enumAry = MonthTypeEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (Integer.valueOf(enumAry[i].getValue()).equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } + + public static String getNameByValue(Integer value) { + if (value == null) { + return ""; + } + MonthTypeEnum[] enumAry = MonthTypeEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (Integer.valueOf(enumAry[i].getValue()).equals(value)) { + return enumAry[i].name(); + } + } + return ""; + } + + public static MonthTypeEnum parseByValue(int value) { + for (MonthTypeEnum e : MonthTypeEnum.values()) { + if (Objects.equals(e.getValue(), value)) { + return e; + } + } + return SALARY_DATE; + } +} diff --git a/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java b/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java index aa6ef65f7..85624f462 100644 --- a/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java @@ -4,11 +4,6 @@ import com.engine.salary.enums.BaseEnum; import java.util.Arrays; -/** - * @Description: 綏ヨ綣渇々 - * @Author: wangxiangzhong - * @Date: 2021/12/9 15:56 - */ public enum SalarySendStatusEnum implements BaseEnum { UNSEND(0, "", 93286), diff --git a/src/com/engine/salary/enums/salarybill/SalaryTemplateTextContentPositionEnum.java b/src/com/engine/salary/enums/salarybill/SalaryTemplateTextContentPositionEnum.java index d7e46be19..0a827320b 100644 --- a/src/com/engine/salary/enums/salarybill/SalaryTemplateTextContentPositionEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalaryTemplateTextContentPositionEnum.java @@ -1,10 +1,5 @@ package com.engine.salary.enums.salarybill; -/** - * @Description: 絎剛臀 - * @Author: wangxiangzhong - * @Date: 2021/12/9 13:22 - */ public enum SalaryTemplateTextContentPositionEnum { BEFORE(1, "莎蕁合", 92937), AFTER(2, "莎蕁合", 92938); diff --git a/src/com/engine/salary/enums/salarybill/SalaryTemplateVarEnum.java b/src/com/engine/salary/enums/salarybill/SalaryTemplateVarEnum.java index dfdc7ec8d..01592b9a0 100644 --- a/src/com/engine/salary/enums/salarybill/SalaryTemplateVarEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalaryTemplateVarEnum.java @@ -1,14 +1,10 @@ package com.engine.salary.enums.salarybill; -/** - * @Description: 綏ヨュ - * @Author: wangxiangzhong - * @Date: 2021/12/9 13:13 - */ public enum SalaryTemplateVarEnum { - CORPORATENAME("CORPORATENAME", "夔腱", 92936), - SALARYYEARMONTH("SALARYYEARMONTH", "莎絮", 87614); + SALARYYEARMONTH("SALARYYEARMONTH", "莎絮", 87614), + SALARY_YEAR("SALARY_YEAR", "莎絮綛", 92936), + CORPORATENAME("CORPORATENAME", "夔腱", 92936); private String value; diff --git a/src/com/engine/salary/enums/salarybill/SalaryTemplateWatermarkTypeEnum.java b/src/com/engine/salary/enums/salarybill/SalaryTemplateWatermarkTypeEnum.java index 00a3834f1..ff054639d 100644 --- a/src/com/engine/salary/enums/salarybill/SalaryTemplateWatermarkTypeEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalaryTemplateWatermarkTypeEnum.java @@ -2,11 +2,6 @@ package com.engine.salary.enums.salarybill; import com.engine.salary.enums.BaseEnum; -/** - * @Description: 羂翫亥瓜 - * @Author: wangxiangzhong - * @Date: 2021/12/9 13:13 - */ public enum SalaryTemplateWatermarkTypeEnum implements BaseEnum { DEFAULT("DEFAULT", "膤紫藥莅ゆ梓", 220057), diff --git a/src/com/engine/salary/enums/salarybill/SalaryTemplateWhetherEnum.java b/src/com/engine/salary/enums/salarybill/SalaryTemplateWhetherEnum.java index e407d8262..87dd585fa 100644 --- a/src/com/engine/salary/enums/salarybill/SalaryTemplateWhetherEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalaryTemplateWhetherEnum.java @@ -2,11 +2,6 @@ package com.engine.salary.enums.salarybill; import java.util.Arrays; -/** - * @Description: 綏ヨ綣渇々 - * @Author: wangxiangzhong - * @Date: 2021/12/9 15:56 - */ public enum SalaryTemplateWhetherEnum { TRUE(1, "", 84967), FALSE(0, "", 84968); diff --git a/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java b/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java index 8cf79c880..da3b76213 100644 --- a/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java +++ b/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java @@ -26,6 +26,7 @@ public enum SalaryFormulaReferenceEnum implements BaseEnum { OTHER_DEDUCTION("otherDeduction", "銀腮i", 93849), SALARY_ACCT_EMPLOYEE("salaryAcctEmployee", "悟堺篆≧", 85368), SALARY_CYCLE("SalaryCycle", "悟ユ", 85368), + VARIABLE_ITEM("variableItem", "羌莎蕁合", 0), ISSUED("ISSUED", "綏峨", 0); private String value; diff --git a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java index 5e38bb298..83892cf9a 100644 --- a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java +++ b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java @@ -38,7 +38,6 @@ public enum IncomeCategoryEnum implements BaseEnum { // todo 紊莚荐 WAGES_AND_SALARIES(1, "0101", "罩e幻綏ヨ", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 160487) { - @Override public void parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb(); @@ -52,6 +51,12 @@ public enum IncomeCategoryEnum implements BaseEnum { Gson gs = new Gson(); List taxRules = taxRuleDTO.getTaxRules(); + List sssbyylb = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSssbyylb(); + if (CollectionUtil.isNotEmpty(sssbyylb)) { + String err = sssbyylb.stream().map(yy -> yy.getXm() + "" + yy.getCwxx()).collect(Collectors.joining(";")); + throw new OnlineCalculateTaxException(err); + } + List sscglb = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb(); Map idNoResultMap = SalaryEntityUtil.convert2Map(sscglb, GetASynIndividualIncomeTaxFeedbackResponse.Body.zhsd.ssjgdx.result::getZzhm); Map resultMap = new HashMap<>(); @@ -526,6 +531,7 @@ public enum IncomeCategoryEnum implements BaseEnum { List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); result.put(this.getDefaultLabel(), sheetData); } + @Override public Map parseGetASynIndividualIncomeTaxFeedbackResponse(GetASynIndividualIncomeTaxFeedbackResponse declareTaxResultFeedbackResponse, List employeeDeclares, SalarySobTaxRuleDTO taxRuleDTO) { checkGetASynIndividualIncomeTaxFeedbackResponse(declareTaxResultFeedbackResponse); @@ -637,6 +643,7 @@ public enum IncomeCategoryEnum implements BaseEnum { List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); result.put(this.getDefaultLabel(), sheetData); } + @Override public Map parseGetASynIndividualIncomeTaxFeedbackResponse(GetASynIndividualIncomeTaxFeedbackResponse declareTaxResultFeedbackResponse, List employeeDeclares, SalarySobTaxRuleDTO taxRuleDTO) { checkGetASynIndividualIncomeTaxFeedbackResponse(declareTaxResultFeedbackResponse); diff --git a/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java b/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java new file mode 100644 index 000000000..49110ae17 --- /dev/null +++ b/src/com/engine/salary/enums/setting/PageListSettingPageEnum.java @@ -0,0 +1,39 @@ +package com.engine.salary.enums.setting; + +import com.engine.salary.enums.BaseEnum; + +/** + * 篋阪膠糸 + */ +public enum PageListSettingPageEnum implements BaseEnum { + + SALARY_DETAILS_REPORT("salary_details_report", "莎膸ヨ;", 109125) + ; + + private String value; + + private String defaultLabel; + + private int labelId; + + PageListSettingPageEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public String getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/salary/handle/LongListTypeHandler.java b/src/com/engine/salary/handle/LongListTypeHandler.java new file mode 100644 index 000000000..43b175a6f --- /dev/null +++ b/src/com/engine/salary/handle/LongListTypeHandler.java @@ -0,0 +1,49 @@ +package com.engine.salary.handle; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * 莉 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class LongListTypeHandler extends BaseTypeHandler> { + + @Override + public void setNonNullParameter(PreparedStatement preparedStatement, int i, List list, JdbcType jdbcType) throws SQLException { + preparedStatement.setString(i, JSON.toJSONString(list)); + } + + @Override + public List getNullableResult(ResultSet resultSet, String s) throws SQLException { + List jsonArray = JSONArray.parseArray(resultSet.getString(s), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } + + @Override + public List getNullableResult(ResultSet resultSet, int i) throws SQLException { + List jsonArray = JSONArray.parseArray(resultSet.getString(i), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } + + @Override + public List getNullableResult(CallableStatement callableStatement, int i) throws SQLException { + List jsonArray = JSONArray.parseArray(callableStatement.getString(i), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } +} diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java index 2bd6ae3e6..193f83c8e 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java @@ -268,8 +268,11 @@ public class SalaryAcctManager extends Service { // 7ヨ∵ゅ絖罧 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); -// //悟絎 -// List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); + //fixme 絎 + +// //絨ら井悟蕁合紊守初絎 +// List salaryItemIds = calculateParam.getSalaryItemIds(); +// List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); // Map acctResults = new HashMap<>(); // if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { // List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); @@ -280,19 +283,6 @@ public class SalaryAcctManager extends Service { // .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); // } - //絨ら井悟蕁合紊守初絎 - List salaryItemIds = calculateParam.getSalaryItemIds(); - List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); - Map acctResults = new HashMap<>(); - if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { - List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - acctResults = Optional.ofNullable(acctResultPOS) - .orElse(new ArrayList<>()) - .stream() - .filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())) - .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - } - // 8ヨ√綣顓 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); @@ -331,8 +321,6 @@ public class SalaryAcctManager extends Service { .setSalarySobPO(salarySobPO) .setSalarySobCycleDTO(salarySobCycleDTO) .setOtherSalaryAcctRecordPOS(otherSalaryAcctRecordPOS) - .setSalaryAcctLockResultPOS(MapUtils.emptyIfNull(acctResults)) - .setLockSalaryItemIds(lockSalaryItemIds) .setSalarySobItemPOS(salarySobItemPOS) .setSalaryItemIdWithPriorityList(salarySobItemsWithPriority) .setExpressFormulas(expressFormulas) diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.java b/src/com/engine/salary/mapper/InsuranceExportMapper.java index 2464c49de..b4ef25f66 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.java +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.java @@ -8,12 +8,6 @@ import org.apache.ibatis.annotations.Param; import java.util.List; -/** - * @Author weaver_cl - * - * @Date 2022/4/18 - * @Version V1.0 - **/ public interface InsuranceExportMapper { List exportExcelAccount(@Param("param") InsuranceComparisonResultQueryParam param); diff --git a/src/com/engine/salary/mapper/InsuranceExportMapper.xml b/src/com/engine/salary/mapper/InsuranceExportMapper.xml index dbe86d9f6..3a5397af8 100644 --- a/src/com/engine/salary/mapper/InsuranceExportMapper.xml +++ b/src/com/engine/salary/mapper/InsuranceExportMapper.xml @@ -3,6 +3,8 @@ SELECT a.*, + a.department_name AS fixedDepartmentName, + a.status AS fixedUserStatus, e.username AS userName, e.mobile AS telephone, d.departmentname AS departmentName, @@ -223,6 +237,8 @@ SELECT - a.*,e.username AS userName,e.mobile AS telephone,d.departmentname AS departmentName,e.status AS userStatus,e.workcode AS workcode + a.*, + e.username AS userName,e.mobile AS telephone,d.departmentname AS departmentName,e.status AS userStatus,e.workcode AS workcode FROM( SELECT * from hrsa_excel_bill_detail WHERE delete_type = 0 AND bill_month = #{param.billMonth} AND payment_status = #{param.paymentStatus} AND payment_organization = #{param.paymentOrganization} @@ -277,7 +296,8 @@ + ${sql} + + + + + diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java index 78e83be7b..f3105e794 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.archive; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; @@ -97,4 +98,5 @@ public interface SalaryArchiveItemMapper { int batchUpdate(@Param("collection") List pos); + List listByArchiveIdAndEffectiveTime(@Param("salaryArchivesIds")List salaryArchiveIds, @Param("effectiveRange")LocalDateRange dateRange); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml index ff6f3ee20..d0830bad3 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml @@ -1071,6 +1071,28 @@ ORDER BY t.effective_time DESC + + UPDATE hrsa_salary_archive_item diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index a6da1930d..38438a3eb 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -109,6 +109,7 @@ , e.enddate as dismissdate , e.status AS employeeStatus ,e.certificatenum as idNo + ,e.accounttype as accountType , d.departmentname AS departmentName , c.subcompanyname AS subcompanyName , e.departmentid AS departmentId @@ -127,7 +128,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN @@ -231,7 +232,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN @@ -332,7 +333,7 @@ WHERE t.delete_type = 0 and t.employee_type is null and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t.id IN @@ -450,7 +451,7 @@ hrsa_salary_archive t LEFT JOIN hrsa_external_employee e ON e.id = t.employee_id WHERE t.delete_type = 0 - and t.employee_type is not null + and t.employee_type = 1 AND t.id IN diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml index 900888f9c..3639039e2 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml @@ -556,7 +556,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( @@ -580,7 +580,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( e.lastname like '%'||#{param.keyword}||'%' @@ -602,7 +602,7 @@ WHERE t1.delete_type = 0 AND e.status != '7' - and (e.accounttype is null or e.accounttype = 0) + AND ( e.lastname like '%'+#{param.keyword}+'%' diff --git a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml index ebd2b723f..5393e4363 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpDeductionMapper.xml @@ -96,7 +96,7 @@ from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -326,7 +326,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -347,7 +347,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -367,7 +367,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -649,7 +649,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.declare_month DESC @@ -664,7 +664,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + and tax_agent_id in diff --git a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml index 9e309c506..6a516eed7 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml @@ -345,7 +345,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -369,7 +369,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -393,7 +393,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -414,7 +414,7 @@ t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.tax_year_month DESC diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml index 234d990b3..ca51de22a 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml @@ -261,7 +261,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -279,7 +279,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -297,7 +297,7 @@ WHERE t1.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.java b/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.java index 9392a59f0..01a4f6be6 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.java +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.java @@ -104,4 +104,10 @@ public interface AttendQuoteFieldMapper { * @return */ List listSome(@Param("param") AttendQuoteFieldPO param); + + /** + * キ阪ょ罨 + * @return + */ + List getAttendanceSerials(); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.xml index 4c1ae10ee..38ad1cf90 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteFieldMapper.xml @@ -486,4 +486,8 @@ + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.java b/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.java new file mode 100644 index 000000000..0fbb3b143 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.java @@ -0,0 +1,76 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.DerateDeductionPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface DerateDeductionMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(DerateDeductionPO derateDeduction); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + DerateDeductionPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param derateDeduction 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(DerateDeductionPO derateDeduction); + + + /** + * 篆刻篆号絖罧 + * + * @param derateDeduction 篆合莅医 + * @return 菴綵怨茵 + */ + int update(DerateDeductionPO derateDeduction); + + /** + * 篆刻綽順null絖罧 + * + * @param derateDeduction 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(DerateDeductionPO derateDeduction); + + /** + * よ医 + * + * @param derateDeduction 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(DerateDeductionPO derateDeduction); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + + void deleteByMainId(Long mainId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.xml new file mode 100644 index 000000000..e3585c01f --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/DerateDeductionMapper.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.derate_amount + , t.derate_item + , t.derate_property + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.main_id + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_derate_deduction + + + + create_time, + + + creator, + + + delete_type, + + + derate_amount, + + + derate_item, + + + derate_property, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + main_id, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{derateAmount}, + + + #{derateItem}, + + + #{derateProperty}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{mainId}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_derate_deduction + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + derate_amount=#{derateAmount}, + derate_item=#{derateItem}, + derate_property=#{derateProperty}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + main_id=#{mainId}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_derate_deduction + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + derate_amount=#{derateAmount}, + + + derate_item=#{derateItem}, + + + derate_property=#{derateProperty}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + main_id=#{mainId}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_derate_deduction + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_derate_deduction + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_derate_deduction + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 89ec94c3b..9fcd32855 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -10,11 +10,12 @@ e.mobile, e.workcode, e.certificatenum as idNo, + e.accounttype as accountType, 'false' as extEmp from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -278,6 +285,7 @@ e.certificatenum as idNo, e.companystartdate as companystartdate, e.mobile as mobile, + e.accounttype as accountType, e.subcompanyid1 as subcompanyid, d.departmentname as departmentName, d.id as departmentId, @@ -287,7 +295,6 @@ left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) @@ -319,6 +327,7 @@ e.mobile as mobile, e.departmentid as departmentId, e.subcompanyid1 as subcompanyid, + e.accounttype as accountType, e.costcenterid as costcenterId, e.locationid as locationId, e.jobtitle as jobtitleId, @@ -327,7 +336,7 @@ from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -480,6 +489,7 @@ e.workcode as workcode, e.companystartdate as companystartdate, e.mobile as mobile, + e.accounttype as accountType, e.enddate as dismissdate from hrmresource e where e.status in (4,5,6) @@ -557,11 +567,12 @@ c.jobtitlename as jobtitleName, c.id as jobtitleId, e.companystartdate as companystartdate, + e.accounttype as accountType, e.mobile as mobile from hrmresource e left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id - WHERE e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + WHERE e.status not in (7) AND e.subcompanyid1 IN @@ -580,6 +591,7 @@ resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee"> select e.RESOURCEID as employeeId, e.SUBCOMPANYID as subcompanyid, + h.accounttype as accountType, e.DEPARTMENTID as departmentId from hrmresourcevirtual e left join hrmresource h on e.RESOURCEID=h.id @@ -597,6 +609,7 @@ select e.RESOURCEID as employeeId, e.SUBCOMPANYID as subcompanyid, + h.accounttype as accountType, e.DEPARTMENTID as departmentId from hrmresourcevirtual e left join hrmresource h on e.RESOURCEID=h.id diff --git a/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.java b/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.java new file mode 100644 index 000000000..7d9bcb083 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.EndowmentInsurancePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface EndowmentInsuranceMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(EndowmentInsurancePO endowmentInsurance); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + EndowmentInsurancePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param endowmentInsurance 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(EndowmentInsurancePO endowmentInsurance); + + + /** + * 篆刻篆号絖罧 + * + * @param endowmentInsurance 篆合莅医 + * @return 菴綵怨茵 + */ + int update(EndowmentInsurancePO endowmentInsurance); + + /** + * 篆刻綽順null絖罧 + * + * @param endowmentInsurance 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(EndowmentInsurancePO endowmentInsurance); + + /** + * よ医 + * + * @param endowmentInsurance 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(EndowmentInsurancePO endowmentInsurance); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.xml b/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.xml new file mode 100644 index 000000000..8d673f35b --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/EndowmentInsuranceMapper.xml @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + account_number + , t.check_code + , t.create_time + , t.creator + , t.current_deduction + , t.deduction_month + , t.delete_type + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.main_id + , t.month_premium + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + , t.year_premium + + + + + + + + + + + + + + + INSERT INTO hrsa_endowment_insurance + + + + account_number, + + + check_code, + + + create_time, + + + creator, + + + current_deduction, + + + deduction_month, + + + delete_type, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + main_id, + + + month_premium, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + year_premium, + + + + + #{accountNumber}, + + + #{checkCode}, + + + #{createTime}, + + + #{creator}, + + + #{currentDeduction}, + + + #{deductionMonth}, + + + #{deleteType}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{mainId}, + + + #{monthPremium}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + #{yearPremium}, + + + + + + + + UPDATE hrsa_endowment_insurance + + account_number=#{accountNumber}, + check_code=#{checkCode}, + create_time=#{createTime}, + creator=#{creator}, + current_deduction=#{currentDeduction}, + deduction_month=#{deductionMonth}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + main_id=#{mainId}, + month_premium=#{monthPremium}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + year_premium=#{yearPremium}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_endowment_insurance + + + account_number=#{accountNumber}, + + + check_code=#{checkCode}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + current_deduction=#{currentDeduction}, + + + deduction_month=#{deductionMonth}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + main_id=#{mainId}, + + + month_premium=#{monthPremium}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + year_premium=#{yearPremium}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_endowment_insurance + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_endowment_insurance + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_endowment_insurance + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.java b/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.java new file mode 100644 index 000000000..a977ee060 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.FreeIncomePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface FreeIncomeMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(FreeIncomePO freeIncome); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + FreeIncomePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param freeIncome 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(FreeIncomePO freeIncome); + + /** + * 篆刻篆号絖罧 + * + * @param freeIncome 篆合莅医 + * @return 菴綵怨茵 + */ + int update(FreeIncomePO freeIncome); + + /** + * 篆刻綽順null絖罧 + * + * @param freeIncome 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(FreeIncomePO freeIncome); + + /** + * よ医 + * + * @param freeIncome 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(FreeIncomePO freeIncome); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.xml b/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.xml new file mode 100644 index 000000000..87ed57c0c --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/FreeIncomeMapper.xml @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.employee_id + , t.employee_type + , t.file_status + , t.free_amount + , t.free_item + , t.free_property + , t.id + , t.main_id + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_free_income + + + + create_time, + + + creator, + + + delete_type, + + + employee_id, + + + employee_type, + + + file_status, + + + free_amount, + + + free_item, + + + free_property, + + + id, + + + main_id, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{freeAmount}, + + + #{freeItem}, + + + #{freeProperty}, + + + #{id}, + + + #{mainId}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_free_income + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + free_amount=#{freeAmount}, + free_item=#{freeItem}, + free_property=#{freeProperty}, + main_id=#{mainId}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_free_income + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + free_amount=#{freeAmount}, + + + free_item=#{freeItem}, + + + free_property=#{freeProperty}, + + + main_id=#{mainId}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_free_income + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_free_income + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_free_income + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.java b/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.java new file mode 100644 index 000000000..b5df0a8e1 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.GrantDonationPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface GrantDonationMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(GrantDonationPO grantDonation); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + GrantDonationPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param grantDonation 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(GrantDonationPO grantDonation); + + + /** + * 篆刻篆号絖罧 + * + * @param grantDonation 篆合莅医 + * @return 菴綵怨茵 + */ + int update(GrantDonationPO grantDonation); + + /** + * 篆刻綽順null絖罧 + * + * @param grantDonation 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(GrantDonationPO grantDonation); + + /** + * よ医 + * + * @param grantDonation 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(GrantDonationPO grantDonation); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.xml b/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.xml new file mode 100644 index 000000000..8fa17414e --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/GrantDonationMapper.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + actual_deduction + , t.create_time + , t.creator + , t.deduction_proportion + , t.delete_type + , t.donate_amount + , t.donate_date + , t.donation_number + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.main_id + , t.recipient_name + , t.tax_agent_id + , t.tax_code + , t.tax_year_month + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_grant_donation + + + + actual_deduction, + + + create_time, + + + creator, + + + deduction_proportion, + + + delete_type, + + + donate_amount, + + + donate_date, + + + donation_number, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + main_id, + + + recipient_name, + + + tax_agent_id, + + + tax_code, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + + + #{actualDeduction}, + + + #{createTime}, + + + #{creator}, + + + #{deductionProportion}, + + + #{deleteType}, + + + #{donateAmount}, + + + #{donateDate}, + + + #{donationNumber}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{mainId}, + + + #{recipientName}, + + + #{taxAgentId}, + + + #{taxCode}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_grant_donation + + actual_deduction=#{actualDeduction}, + create_time=#{createTime}, + creator=#{creator}, + deduction_proportion=#{deductionProportion}, + delete_type=#{deleteType}, + donate_amount=#{donateAmount}, + donate_date=#{donateDate}, + donation_number=#{donationNumber}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + main_id=#{mainId}, + recipient_name=#{recipientName}, + tax_agent_id=#{taxAgentId}, + tax_code=#{taxCode}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_grant_donation + + + actual_deduction=#{actualDeduction}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + deduction_proportion=#{deductionProportion}, + + + delete_type=#{deleteType}, + + + donate_amount=#{donateAmount}, + + + donate_date=#{donateDate}, + + + donation_number=#{donationNumber}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + main_id=#{mainId}, + + + recipient_name=#{recipientName}, + + + tax_agent_id=#{taxAgentId}, + + + tax_code=#{taxCode}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_grant_donation + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_grant_donation + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_grant_donation + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.java b/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.java new file mode 100644 index 000000000..2bd55f7b9 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.HealthInsurancePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface HealthInsuranceMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(HealthInsurancePO healthInsurance); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + HealthInsurancePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param healthInsurance 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(HealthInsurancePO healthInsurance); + + + /** + * 篆刻篆号絖罧 + * + * @param healthInsurance 篆合莅医 + * @return 菴綵怨茵 + */ + int update(HealthInsurancePO healthInsurance); + + /** + * 篆刻綽順null絖罧 + * + * @param healthInsurance 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(HealthInsurancePO healthInsurance); + + /** + * よ医 + * + * @param healthInsurance 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(HealthInsurancePO healthInsurance); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.xml b/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.xml new file mode 100644 index 000000000..4ed0bd9a1 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/HealthInsuranceMapper.xml @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.current_deduction + , t.delete_type + , t.effective_date + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.identification_number + , t.main_id + , t.month_premium + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + , t.year_premium + + + + + + + + + + + + + + + INSERT INTO hrsa_health_insurance + + + + create_time, + + + creator, + + + current_deduction, + + + delete_type, + + + effective_date, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + identification_number, + + + main_id, + + + month_premium, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + year_premium, + + + + + #{createTime}, + + + #{creator}, + + + #{currentDeduction}, + + + #{deleteType}, + + + #{effectiveDate}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{identificationNumber}, + + + #{mainId}, + + + #{monthPremium}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + #{yearPremium}, + + + + + + + + UPDATE hrsa_health_insurance + + create_time=#{createTime}, + creator=#{creator}, + current_deduction=#{currentDeduction}, + delete_type=#{deleteType}, + effective_date=#{effectiveDate}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + identification_number=#{identificationNumber}, + main_id=#{mainId}, + month_premium=#{monthPremium}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + year_premium=#{yearPremium}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_health_insurance + + + create_time=#{createTime}, + + + creator=#{creator}, + + + current_deduction=#{currentDeduction}, + + + delete_type=#{deleteType}, + + + effective_date=#{effectiveDate}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + identification_number=#{identificationNumber}, + + + main_id=#{mainId}, + + + month_premium=#{monthPremium}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + year_premium=#{yearPremium}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_health_insurance + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_health_insurance + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_health_insurance + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.java b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.java index 7638a60cc..0eaa2b5c2 100644 --- a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.java +++ b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.java @@ -11,42 +11,64 @@ import java.util.List; public interface OtherDeductionMapper { - /** + /** * 号筝脂ヨ * * @param id 筝脂 * @return 菴莅医鐚羃≧菴null */ - OtherDeductionPO getById(Long id); + OtherDeductionPO getById(Long id); - /** - * ヨ∽井-銀腮iゅ茵 - * @param param - * @return - */ - List list(@Param("param") OtherDeductionQueryParam param); + /** + * ヨ∽井-銀腮iゅ茵 + * + * @param param + * @return + */ + List list(@Param("param") OtherDeductionQueryParam param); - List recordList(@Param("param") OtherDeductionQueryParam param); + List recordList(@Param("param") OtherDeductionQueryParam param); - List listSome(@Param("param") OtherDeductionPO param); + List listSome(@Param("param") OtherDeductionPO param); - /** - * 拷 - * @param pos - */ - void insertData(@Param("collection") List pos); + /** + * 拷 + * + * @param pos + */ + void insertData(@Param("collection") List pos); - /** - * 拷鋓 - * @param pos - */ - void updateData(@Param("collection") List pos); + /** + * 拷鋓 + * + * @param pos + */ + void updateData(@Param("collection") List pos); - /** - * 拷 - * @param longs - */ + /** + * 医鐚綽順null絖罧 + * + * @param otherDeduction 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(OtherDeductionPO otherDeduction); + + /** + * 拷 + * + * @param longs + */ void deleteData(List longs); + + /** + * よ医 + * + * @param otherDeduction 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(OtherDeductionPO otherDeduction); + + OtherDeductionPO getByTaxAgentIdAndEmployeeId(@Param("taxAgentId") Long taxAgentId, @Param("employeeId") Long employeeId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml index 0afae02a2..ecebc3815 100644 --- a/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/OtherDeductionMapper.xml @@ -16,6 +16,8 @@ + + @@ -36,6 +38,8 @@ , t.delete_type , t.tenant_key , t.private_pension + , t.free_income + , t.derate_deduction @@ -49,6 +53,22 @@ + + UPDATE hrsa_other_deduction + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + + - - t1 . @@ -80,7 +98,9 @@ t1.tax_delay_endowment_insurance, t1.other_deduction, t1.deduction_allowed_donation, - t1.private_pension + t1.private_pension, + t1.free_income, + t1.derate_deduction @@ -280,11 +300,11 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + - ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} @@ -299,7 +319,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.declare_month DESC @@ -310,7 +330,7 @@ FROM hrsa_other_deduction t WHERE delete_type = 0 - and declare_month = #{param.declareMonth} + and declare_month = #{param.declareMonth} AND t.employee_id IN @@ -336,6 +356,8 @@ other_deduction, deduction_allowed_donation, private_pension, + free_income, + derate_deduction, create_time, update_time, creator, @@ -352,6 +374,8 @@ #{item.otherDeduction}, #{item.deductionAllowedDonation}, #{item.privatePension}, + #{item.freeIncome}, + #{item.derateDeduction}, #{item.createTime}, #{item.updateTime}, #{item.creator}, @@ -369,6 +393,8 @@ other_deduction, deduction_allowed_donation, private_pension, + free_income, + derate_deduction, create_time, update_time, creator, @@ -385,6 +411,8 @@ #{item.otherDeduction,jdbcType=VARCHAR}, #{item.deductionAllowedDonation,jdbcType=VARCHAR}, #{item.privatePension,jdbcType=VARCHAR}, + #{item.freeIncome,jdbcType=VARCHAR}, + #{item.derateDeduction,jdbcType=VARCHAR}, #{item.createTime,jdbcType=DATE}, #{item.updateTime,jdbcType=DATE}, #{item.creator,jdbcType=DOUBLE}, @@ -394,21 +422,23 @@ - INSERT INTO hrsa_other_deduction( - employee_id, - tax_agent_id, - declare_month, - business_healthy_insurance, - tax_delay_endowment_insurance, - other_deduction, - deduction_allowed_donation, - private_pension, - create_time, - update_time, - creator, - tenant_key - ) - VALUES + INSERT INTO hrsa_other_deduction( + employee_id, + tax_agent_id, + declare_month, + business_healthy_insurance, + tax_delay_endowment_insurance, + other_deduction, + deduction_allowed_donation, + private_pension, + free_income, + derate_deduction, + create_time, + update_time, + creator, + tenant_key + ) + VALUES ( #{item.employeeId}, #{item.taxAgentId}, @@ -418,6 +448,8 @@ #{item.otherDeduction}, #{item.deductionAllowedDonation}, #{item.privatePension}, + #{item.freeIncome}, + #{item.derateDeduction}, #{item.createTime}, #{item.updateTime}, #{item.creator}, @@ -464,6 +496,20 @@ + + + + when id=#{item.id} then #{item.freeIncome} + + + + + + + when id=#{item.id} then #{item.derateDeduction} + + + @@ -480,4 +526,210 @@ + + + INSERT INTO hrsa_other_deduction + + + + business_healthy_insurance, + + + create_time, + + + creator, + + + declare_month, + + + deduction_allowed_donation, + + + delete_type, + + + derate_deduction, + + + employee_id, + + + free_income, + + + other_deduction, + + + private_pension, + + + tax_agent_id, + + + tax_delay_endowment_insurance, + + + tenant_key, + + + update_time, + + + + + #{businessHealthyInsurance}, + + + #{createTime}, + + + #{creator}, + + + #{declareMonth}, + + + #{deductionAllowedDonation}, + + + #{deleteType}, + + + #{derateDeduction}, + + + #{employeeId}, + + + #{freeIncome}, + + + #{otherDeduction}, + + + #{privatePension}, + + + #{taxAgentId}, + + + #{taxDelayEndowmentInsurance}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + select hrsa_other_deduction_id.currval from dual + + + INSERT INTO hrsa_other_deduction + + + + business_healthy_insurance, + + + create_time, + + + creator, + + + declare_month, + + + deduction_allowed_donation, + + + delete_type, + + + derate_deduction, + + + employee_id, + + + free_income, + + + other_deduction, + + + private_pension, + + + tax_agent_id, + + + tax_delay_endowment_insurance, + + + tenant_key, + + + update_time, + + + + + #{businessHealthyInsurance}, + + + #{createTime}, + + + #{creator}, + + + #{declareMonth}, + + + #{deductionAllowedDonation}, + + + #{deleteType}, + + + #{derateDeduction}, + + + #{employeeId}, + + + #{freeIncome}, + + + #{otherDeduction}, + + + #{privatePension}, + + + #{taxAgentId}, + + + #{taxDelayEndowmentInsurance}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.java b/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.java new file mode 100644 index 000000000..2db1ab3f1 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.java @@ -0,0 +1,81 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.OtherDerateDeductionPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface OtherDerateDeductionMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(OtherDerateDeductionPO otherDerateDeduction); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + OtherDerateDeductionPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param otherDerateDeduction 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(OtherDerateDeductionPO otherDerateDeduction); + + /** + * 拷 + * + * @param otherDerateDeduction + */ + void batchInsert(@Param("collection") List otherDerateDeduction); + + /** + * 篆刻篆号絖罧 + * + * @param otherDerateDeduction 篆合莅医 + * @return 菴綵怨茵 + */ + int update(OtherDerateDeductionPO otherDerateDeduction); + + /** + * 篆刻綽順null絖罧 + * + * @param otherDerateDeduction 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(OtherDerateDeductionPO otherDerateDeduction); + + /** + * よ医 + * + * @param otherDerateDeduction 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(OtherDerateDeductionPO otherDerateDeduction); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.xml new file mode 100644 index 000000000..330fb74f8 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/OtherDerateDeductionMapper.xml @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.main_id + , t.other_deduction + , t.remark + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_other_derate_deduction + + + + create_time, + + + creator, + + + delete_type, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + main_id, + + + other_deduction, + + + remark, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{mainId}, + + + #{otherDeduction}, + + + #{remark}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_other_derate_deduction + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + main_id=#{mainId}, + other_deduction=#{otherDeduction}, + remark=#{remark}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_other_derate_deduction + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + main_id=#{mainId}, + + + other_deduction=#{otherDeduction}, + + + remark=#{remark}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_other_derate_deduction + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_other_derate_deduction + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_other_derate_deduction + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.java b/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.java new file mode 100644 index 000000000..a880e983d --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.java @@ -0,0 +1,75 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.PersonalPensionPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PersonalPensionMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(PersonalPensionPO personalPension); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + PersonalPensionPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param personalPension 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(PersonalPensionPO personalPension); + + + /** + * 篆刻篆号絖罧 + * + * @param personalPension 篆合莅医 + * @return 菴綵怨茵 + */ + int update(PersonalPensionPO personalPension); + + /** + * 篆刻綽順null絖罧 + * + * @param personalPension 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(PersonalPensionPO personalPension); + + /** + * よ医 + * + * @param personalPension 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(PersonalPensionPO personalPension); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteByMainId(Long mainId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.xml b/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.xml new file mode 100644 index 000000000..da3185d56 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/PersonalPensionMapper.xml @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + collect_source + , t.create_time + , t.creator + , t.data_source + , t.delete_type + , t.eb_data_id + , t.employee_id + , t.employee_type + , t.file_status + , t.id + , t.main_id + , t.pay_amount + , t.pay_month + , t.tax_agent_id + , t.tax_year_month + , t.tenant_key + , t.update_time + , t.voucher_no + , t.voucher_type + , t.voucher_type_name + + + + + + + + + + + + + + + INSERT INTO hrsa_personal_pension + + + + collect_source, + + + create_time, + + + creator, + + + data_source, + + + delete_type, + + + eb_data_id, + + + employee_id, + + + employee_type, + + + file_status, + + + id, + + + main_id, + + + pay_amount, + + + pay_month, + + + tax_agent_id, + + + tax_year_month, + + + tenant_key, + + + update_time, + + + voucher_no, + + + voucher_type, + + + voucher_type_name, + + + + + #{collectSource}, + + + #{createTime}, + + + #{creator}, + + + #{dataSource}, + + + #{deleteType}, + + + #{ebDataId}, + + + #{employeeId}, + + + #{employeeType}, + + + #{fileStatus}, + + + #{id}, + + + #{mainId}, + + + #{payAmount}, + + + #{payMonth}, + + + #{taxAgentId}, + + + #{taxYearMonth}, + + + #{tenantKey}, + + + #{updateTime}, + + + #{voucherNo}, + + + #{voucherType}, + + + #{voucherTypeName}, + + + + + + + + UPDATE hrsa_personal_pension + + collect_source=#{collectSource}, + create_time=#{createTime}, + creator=#{creator}, + data_source=#{dataSource}, + delete_type=#{deleteType}, + eb_data_id=#{ebDataId}, + employee_id=#{employeeId}, + employee_type=#{employeeType}, + file_status=#{fileStatus}, + main_id=#{mainId}, + pay_amount=#{payAmount}, + pay_month=#{payMonth}, + tax_agent_id=#{taxAgentId}, + tax_year_month=#{taxYearMonth}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + voucher_no=#{voucherNo}, + voucher_type=#{voucherType}, + voucher_type_name=#{voucherTypeName}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_personal_pension + + + collect_source=#{collectSource}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + data_source=#{dataSource}, + + + delete_type=#{deleteType}, + + + eb_data_id=#{ebDataId}, + + + employee_id=#{employeeId}, + + + employee_type=#{employeeType}, + + + file_status=#{fileStatus}, + + + main_id=#{mainId}, + + + pay_amount=#{payAmount}, + + + pay_month=#{payMonth}, + + + tax_agent_id=#{taxAgentId}, + + + tax_year_month=#{taxYearMonth}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + voucher_no=#{voucherNo}, + + + voucher_type=#{voucherType}, + + + voucher_type_name=#{voucherTypeName}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_personal_pension + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_personal_pension + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_personal_pension + SET delete_type = 1 + WHERE delete_type = 0 + AND main_id = #{mainId} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml b/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml index ce701f1d9..442fe485e 100644 --- a/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/SpecialAddDeductionMapper.xml @@ -619,7 +619,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + ORDER BY t1.create_time desc @@ -633,7 +633,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + AND t1.tax_agent_id IN @@ -653,7 +653,7 @@ WHERE t1.delete_type = 0 AND t2.delete_type = 0 AND e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + order by ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java new file mode 100644 index 000000000..28a30febe --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.java @@ -0,0 +1,89 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableArchiveItemMapper + * @date 2024/08/07 9:22 + * @description 羌罅f膸 + */ +public interface VariableArchiveItemMapper { + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(@Param("param") VariableArchiveItemPO variableArchiveItem); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + VariableArchiveItemPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param variableArchiveItem 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(VariableArchiveItemPO variableArchiveItem); + + /** + * 篆刻篆号絖罧 + * + * @param variableArchiveItem 篆合莅医 + * @return 菴綵怨茵 + */ + int update(VariableArchiveItemPO variableArchiveItem); + + /** + * 篆刻綽順null絖罧 + * + * @param variableArchiveItem 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(VariableArchiveItemPO variableArchiveItem); + + /** + * よ医 + * + * @param variableArchiveItem 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(VariableArchiveItemPO variableArchiveItem); + + /** + * ヨ∽貴罅f筝綏俄戎羌莎蕁合 + * + * @return + */ + List listUsingItems(); + + /** + * + * @param insertList + * @return + */ + int batchInsert(@Param("collection") List insertList); + + void deleteByIds(@Param("collection")List part); + + void deleteByArchiveIds(@Param("collection")List part); + + void updateBatchSelective(@Param("list")List variableArchiveItemPOS); +} diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml new file mode 100644 index 000000000..365c21579 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveItemMapper.xml @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + + + + + + t.id + , t.employee_id + , t.variable_archive_id + , t.variable_item_id + , t.item_value + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + + + INSERT INTO hrsa_variable_archive_item + + + + id, + + + employee_id, + + + variable_archive_id, + + + variable_item_id, + + + item_value, + + + create_time, + + + update_time, + + + creator, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{employeeId}, + + + #{variableArchiveId}, + + + #{variableItemId}, + + + #{itemValue}, + + + #{createTime}, + + + #{updateTime}, + + + #{creator}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + INSERT INTO hrsa_variable_archive_item ( + id + , employee_id + , variable_archive_id + , variable_item_id + , item_value + , create_time + , update_time + , creator + , delete_type + , tenant_key + ) + VALUES + + ( + #{item.id}, + #{item.employeeId}, + #{item.variableArchiveId}, + #{item.variableItemId}, + #{item.itemValue}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_variable_archive_item ( + id + , employee_id + , variable_archive_id + , variable_item_id + , item_value + , create_time + , update_time + , creator + , delete_type + , tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.variableArchiveId,jdbcType=DOUBLE}, + #{item.variableItemId,jdbcType=DOUBLE}, + #{item.itemValue,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + INSERT INTO hrsa_variable_archive_item ( + id + , employee_id + , variable_archive_id + , variable_item_id + , item_value + , create_time + , update_time + , creator + , delete_type + , tenant_key + ) + VALUES + ( + #{item.id}, + #{item.employeeId}, + #{item.variableArchiveId}, + #{item.variableItemId}, + #{item.itemValue}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_variable_archive_item + + employee_id=#{employeeId}, + variable_archive_id=#{variableArchiveId}, + variable_item_id=#{variableItemId}, + item_value=#{itemValue}, + create_time=#{createTime}, + update_time=#{updateTime}, + creator=#{creator}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_variable_archive_item + + + employee_id=#{employeeId}, + + + variable_archive_id=#{variableArchiveId}, + + + variable_item_id=#{variableItemId}, + + + item_value=#{itemValue}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + update hrsa_variable_archive_item + + + + + when id = #{item.id} then #{item.itemValue} + + + + + where id in + + #{item.id} + + + + + + + UPDATE hrsa_variable_archive_item + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_variable_archive_item + SET delete_type=1 + WHERE delete_type = 0 + + AND id IN + + #{id} + + + + + + UPDATE hrsa_variable_archive_item + SET delete_type=1 + WHERE delete_type = 0 + + AND variable_archive_id IN + + #{id} + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.java b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.java new file mode 100644 index 000000000..635c22d98 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.java @@ -0,0 +1,81 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.dto.VariableArchiveListDTO; +import com.engine.salary.entity.datacollection.param.VariableArchiveQueryParam; +import com.engine.salary.entity.datacollection.po.VariableArchivePO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableArchiveMapper + * @date 2024/08/07 9:18 + * @description 羌罅f + */ +public interface VariableArchiveMapper { + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(VariableArchivePO variableArchive); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + VariableArchivePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param variableArchive 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(VariableArchivePO variableArchive); + + /** + * 篆刻篆号絖罧 + * + * @param variableArchive 篆合莅医 + * @return 菴綵怨茵 + */ + int update(VariableArchivePO variableArchive); + + /** + * 篆刻綽順null絖罧 + * + * @param variableArchive 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(VariableArchivePO variableArchive); + + /** + * よ医 + * + * @param variableArchive 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(VariableArchivePO variableArchive); + + /** + * よ医 + * + * @param variableArchiveIds 緇ょ莅医id + * @return 菴綵怨茵 + */ + int deleteByIds(@Param("ids")List variableArchiveIds); + + List list(@Param("param")VariableArchiveQueryParam queryParam); +} diff --git a/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml new file mode 100644 index 000000000..b9e9b94b4 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableArchiveMapper.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + t.id + , t.employee_id + , t.tax_agent_id + , t.salary_month + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + t.id + , t.employee_id + , t.tax_agent_id + , t.salary_month + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , e.mobile + , e.workcode + , e.certificatenum as idNo + , e.lastname as username + , e.certificatenum as idNo + , e.companystartdate as companystartdate + , e.enddate as dismissdate + , d.departmentname AS departmentName + , c.subcompanyname AS subcompanyName + , a.name AS taxAgentName + , a.id AS taxAgentId + + + + + + + + + + INSERT INTO hrsa_variable_archive + + + + id, + + + tax_agent_id, + + + employee_id, + + + salary_month, + + + create_time, + + + update_time, + + + creator, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{taxAgentId}, + + + #{employeeId}, + + + #{salaryMonth}, + + + #{createTime}, + + + #{updateTime}, + + + #{creator}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + + + UPDATE hrsa_variable_archive + + employee_id=#{employeeId}, + salary_month=#{salaryMonth}, + create_time=#{createTime}, + update_time=#{updateTime}, + creator=#{creator}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_variable_archive + + + employee_id=#{employeeId}, + + + salary_month=#{salaryMonth}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_variable_archive + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_variable_archive + 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/VariableItemMapper.java b/src/com/engine/salary/mapper/datacollection/VariableItemMapper.java new file mode 100644 index 000000000..a886e64c3 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableItemMapper.java @@ -0,0 +1,68 @@ +package com.engine.salary.mapper.datacollection; + +import com.engine.salary.entity.datacollection.po.VariableItemPO; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableItemMapper + * @date 2024/08/07 9:26 + * @description 羌蕁合 + */ +public interface VariableItemMapper { + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(VariableItemPO variableItem); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + VariableItemPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param variableItem 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(VariableItemPO variableItem); + + /** + * 篆刻篆号絖罧 + * + * @param variableItem 篆合莅医 + * @return 菴綵怨茵 + */ + int update(VariableItemPO variableItem); + + /** + * 篆刻綽順null絖罧 + * + * @param variableItem 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(VariableItemPO variableItem); + + /** + * よ医 + * + * @param variableItem 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(VariableItemPO variableItem); +} diff --git a/src/com/engine/salary/mapper/datacollection/VariableItemMapper.xml b/src/com/engine/salary/mapper/datacollection/VariableItemMapper.xml new file mode 100644 index 000000000..f7b634091 --- /dev/null +++ b/src/com/engine/salary/mapper/datacollection/VariableItemMapper.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + t.id + , t.name + , t.code + , t.data_type + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_variable_item + + + + id, + + + name, + + + code, + + + data_type, + + + create_time, + + + update_time, + + + creator, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{name}, + + + #{code}, + + + #{dataType}, + + + #{createTime}, + + + #{updateTime}, + + + #{creator}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_variable_item + + name=#{name}, + code=#{code}, + data_type=#{dataType}, + create_time=#{createTime}, + update_time=#{updateTime}, + creator=#{creator}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_variable_item + + + name=#{name}, + + + code=#{code}, + + + data_type=#{dataType}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_variable_item + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java new file mode 100644 index 000000000..81082b003 --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -0,0 +1,87 @@ +package com.engine.salary.mapper.hrm; + +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +public interface HrmSnapshotMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + List snapshot(@Param("employeeId")Long employeeId, @Param("snapshotTime")Date snapshotTime); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(HrmSnapshotPO hrmSnapshot); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + HrmSnapshotPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param hrmSnapshot 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(HrmSnapshotPO hrmSnapshot); + + + /** + * 篆刻篆号絖罧 + * + * @param hrmSnapshot 篆合莅医 + * @return 菴綵怨茵 + */ + int update(HrmSnapshotPO hrmSnapshot); + + /** + * 篆刻綽順null絖罧 + * + * @param hrmSnapshot 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(HrmSnapshotPO hrmSnapshot); + + /** + * よ医 + * + * @param hrmSnapshot 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(HrmSnapshotPO hrmSnapshot); + + /** + * 拷よ医 + * + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteBySnapshotTime(Date snapshotTime); + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List currentEmpData(); + + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml new file mode 100644 index 000000000..d56a738ea --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -0,0 +1,1201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + ACCOUNTID1 + , t.ACCOUNTNAME + , t.ACCOUNTTYPE + , t.ACCUMFUNDACCOUNT + , t.ASSISTANTID + , t.BANKID1 + , t.BELONGTO + , t.BEMEMBERDATE + , t.BEPARTYDATE + , t.BIRTHDAY + , t.BIRTHPLACE + , t.CERTIFICATENUM + , t.companystartdate + , t.companyworkyear + , t.COSTCENTERID + , t.COUNTRYID + , t.DEGREE + , t.DEPARTMENTID + , t.DEPARTMENTNAME + , t.EDUCATIONLEVEL + , t.EMAIL + , t.employee_id + , t.ENDDATE + , t.EXTPHONE + , t.FAX + , t.FOLK + , t.HEALTHINFO + , t.HOMEADDRESS + , t.ID + , t.ISLABOUUNION + , t.JOBACTIVITYDESC + , t.JOBCALL + , t.jobcallname + , t.JOBLEVEL + , t.JOBTITLE + , t.JOBTITLENAME + , t.LASTLOGINDATE + , t.LASTNAME + , t.LOCATIONID + , t.loginid + , t.MANAGERID + , t.MANAGERSTR + , t.MARITALSTATUS + , t.MOBILE + , t.MOBILECALL + , t.NATIONALITY + , t.NATIVEPLACE + , t.POLICY + , t.PROBATIONENDDATE + , t.REGRESIDENTPLACE + , t.RESIDENTPHONE + , t.RESIDENTPLACE + , t.RESIDENTPOSTCODE + , t.RESOURCETYPE + , t.SECLEVEL + , t.SEX + , t.snapshot_time + , t.STARTDATE + , t.STATUS + , t.SUBCOMPANYID1 + , t.SUBCOMPANYNAME + , t.TELEPHONE + , t.TEMPRESIDENTNUMBER + , t.USEKIND + , t.WORKCODE + , t.WORKROOM + , t.workstartdate + , t.workyear + + + + + + + + + + + + + + + + + + INSERT INTO hrsa_hrm_snapshot + + + + ACCOUNTID1, + + + ACCOUNTNAME, + + + ACCOUNTTYPE, + + + ACCUMFUNDACCOUNT, + + + ASSISTANTID, + + + BANKID1, + + + BELONGTO, + + + BEMEMBERDATE, + + + BEPARTYDATE, + + + BIRTHDAY, + + + BIRTHPLACE, + + + CERTIFICATENUM, + + + companystartdate, + + + companyworkyear, + + + COSTCENTERID, + + + COUNTRYID, + + + DEGREE, + + + DEPARTMENTID, + + + DEPARTMENTNAME, + + + EDUCATIONLEVEL, + + + EMAIL, + + + employee_id, + + + ENDDATE, + + + EXTPHONE, + + + FAX, + + + FOLK, + + + HEALTHINFO, + + + HOMEADDRESS, + + + ID, + + + ISLABOUUNION, + + + JOBACTIVITYDESC, + + + JOBCALL, + + + jobcallname, + + + JOBLEVEL, + + + JOBTITLE, + + + JOBTITLENAME, + + + LASTLOGINDATE, + + + LASTNAME, + + + LOCATIONID, + + + loginid, + + + MANAGERID, + + + MANAGERSTR, + + + MARITALSTATUS, + + + MOBILE, + + + MOBILECALL, + + + NATIONALITY, + + + NATIVEPLACE, + + + POLICY, + + + PROBATIONENDDATE, + + + REGRESIDENTPLACE, + + + RESIDENTPHONE, + + + RESIDENTPLACE, + + + RESIDENTPOSTCODE, + + + RESOURCETYPE, + + + SECLEVEL, + + + SEX, + + + snapshot_time, + + + STARTDATE, + + + STATUS, + + + SUBCOMPANYID1, + + + SUBCOMPANYNAME, + + + TELEPHONE, + + + TEMPRESIDENTNUMBER, + + + USEKIND, + + + WORKCODE, + + + WORKROOM, + + + workstartdate, + + + workyear, + + + + + #{accountid1}, + + + #{accountname}, + + + #{accounttype}, + + + #{accumfundaccount}, + + + #{assistantid}, + + + #{bankid1}, + + + #{belongto}, + + + #{bememberdate}, + + + #{bepartydate}, + + + #{birthday}, + + + #{birthplace}, + + + #{certificatenum}, + + + #{companystartdate}, + + + #{companyworkyear}, + + + #{costcenterid}, + + + #{countryid}, + + + #{degree}, + + + #{departmentid}, + + + #{departmentname}, + + + #{educationlevel}, + + + #{email}, + + + #{employeeId}, + + + #{enddate}, + + + #{extphone}, + + + #{fax}, + + + #{folk}, + + + #{healthinfo}, + + + #{homeaddress}, + + + #{id}, + + + #{islabouunion}, + + + #{jobactivitydesc}, + + + #{jobcall}, + + + #{jobcallname}, + + + #{joblevel}, + + + #{jobtitle}, + + + #{jobtitlename}, + + + #{lastlogindate}, + + + #{lastname}, + + + #{locationid}, + + + #{loginid}, + + + #{managerid}, + + + #{managerstr}, + + + #{maritalstatus}, + + + #{mobile}, + + + #{mobilecall}, + + + #{nationality}, + + + #{nativeplace}, + + + #{policy}, + + + #{probationenddate}, + + + #{regresidentplace}, + + + #{residentphone}, + + + #{residentplace}, + + + #{residentpostcode}, + + + #{resourcetype}, + + + #{seclevel}, + + + #{sex}, + + + #{snapshotTime}, + + + #{startdate}, + + + #{status}, + + + #{subcompanyid1}, + + + #{subcompanyname}, + + + #{telephone}, + + + #{tempresidentnumber}, + + + #{usekind}, + + + #{workcode}, + + + #{workroom}, + + + #{workstartdate}, + + + #{workyear}, + + + + + + + UPDATE hrsa_hrm_snapshot + + ACCOUNTID1=#{accountid1}, + ACCOUNTNAME=#{accountname}, + ACCOUNTTYPE=#{accounttype}, + ACCUMFUNDACCOUNT=#{accumfundaccount}, + ASSISTANTID=#{assistantid}, + BANKID1=#{bankid1}, + BELONGTO=#{belongto}, + BEMEMBERDATE=#{bememberdate}, + BEPARTYDATE=#{bepartydate}, + BIRTHDAY=#{birthday}, + BIRTHPLACE=#{birthplace}, + CERTIFICATENUM=#{certificatenum}, + companystartdate=#{companystartdate}, + companyworkyear=#{companyworkyear}, + COSTCENTERID=#{costcenterid}, + COUNTRYID=#{countryid}, + DEGREE=#{degree}, + DEPARTMENTID=#{departmentid}, + DEPARTMENTNAME=#{departmentname}, + EDUCATIONLEVEL=#{educationlevel}, + EMAIL=#{email}, + employee_id=#{employeeId}, + ENDDATE=#{enddate}, + EXTPHONE=#{extphone}, + FAX=#{fax}, + FOLK=#{folk}, + HEALTHINFO=#{healthinfo}, + HOMEADDRESS=#{homeaddress}, + ISLABOUUNION=#{islabouunion}, + JOBACTIVITYDESC=#{jobactivitydesc}, + JOBCALL=#{jobcall}, + jobcallname=#{jobcallname}, + JOBLEVEL=#{joblevel}, + JOBTITLE=#{jobtitle}, + JOBTITLENAME=#{jobtitlename}, + LASTLOGINDATE=#{lastlogindate}, + LASTNAME=#{lastname}, + LOCATIONID=#{locationid}, + loginid=#{loginid}, + MANAGERID=#{managerid}, + MANAGERSTR=#{managerstr}, + MARITALSTATUS=#{maritalstatus}, + MOBILE=#{mobile}, + MOBILECALL=#{mobilecall}, + NATIONALITY=#{nationality}, + NATIVEPLACE=#{nativeplace}, + POLICY=#{policy}, + PROBATIONENDDATE=#{probationenddate}, + REGRESIDENTPLACE=#{regresidentplace}, + RESIDENTPHONE=#{residentphone}, + RESIDENTPLACE=#{residentplace}, + RESIDENTPOSTCODE=#{residentpostcode}, + RESOURCETYPE=#{resourcetype}, + SECLEVEL=#{seclevel}, + SEX=#{sex}, + snapshot_time=#{snapshotTime}, + STARTDATE=#{startdate}, + STATUS=#{status}, + SUBCOMPANYID1=#{subcompanyid1}, + SUBCOMPANYNAME=#{subcompanyname}, + TELEPHONE=#{telephone}, + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + USEKIND=#{usekind}, + WORKCODE=#{workcode}, + WORKROOM=#{workroom}, + workstartdate=#{workstartdate}, + workyear=#{workyear}, + + WHERE ID = #{id} + + + + + + UPDATE hrsa_hrm_snapshot + + + ACCOUNTID1=#{accountid1}, + + + ACCOUNTNAME=#{accountname}, + + + ACCOUNTTYPE=#{accounttype}, + + + ACCUMFUNDACCOUNT=#{accumfundaccount}, + + + ASSISTANTID=#{assistantid}, + + + BANKID1=#{bankid1}, + + + BELONGTO=#{belongto}, + + + BEMEMBERDATE=#{bememberdate}, + + + BEPARTYDATE=#{bepartydate}, + + + BIRTHDAY=#{birthday}, + + + BIRTHPLACE=#{birthplace}, + + + CERTIFICATENUM=#{certificatenum}, + + + companystartdate=#{companystartdate}, + + + companyworkyear=#{companyworkyear}, + + + COSTCENTERID=#{costcenterid}, + + + COUNTRYID=#{countryid}, + + + DEGREE=#{degree}, + + + DEPARTMENTID=#{departmentid}, + + + DEPARTMENTNAME=#{departmentname}, + + + EDUCATIONLEVEL=#{educationlevel}, + + + EMAIL=#{email}, + + + employee_id=#{employeeId}, + + + ENDDATE=#{enddate}, + + + EXTPHONE=#{extphone}, + + + FAX=#{fax}, + + + FOLK=#{folk}, + + + HEALTHINFO=#{healthinfo}, + + + HOMEADDRESS=#{homeaddress}, + + + ISLABOUUNION=#{islabouunion}, + + + JOBACTIVITYDESC=#{jobactivitydesc}, + + + JOBCALL=#{jobcall}, + + + jobcallname=#{jobcallname}, + + + JOBLEVEL=#{joblevel}, + + + JOBTITLE=#{jobtitle}, + + + JOBTITLENAME=#{jobtitlename}, + + + LASTLOGINDATE=#{lastlogindate}, + + + LASTNAME=#{lastname}, + + + LOCATIONID=#{locationid}, + + + loginid=#{loginid}, + + + MANAGERID=#{managerid}, + + + MANAGERSTR=#{managerstr}, + + + MARITALSTATUS=#{maritalstatus}, + + + MOBILE=#{mobile}, + + + MOBILECALL=#{mobilecall}, + + + NATIONALITY=#{nationality}, + + + NATIVEPLACE=#{nativeplace}, + + + POLICY=#{policy}, + + + PROBATIONENDDATE=#{probationenddate}, + + + REGRESIDENTPLACE=#{regresidentplace}, + + + RESIDENTPHONE=#{residentphone}, + + + RESIDENTPLACE=#{residentplace}, + + + RESIDENTPOSTCODE=#{residentpostcode}, + + + RESOURCETYPE=#{resourcetype}, + + + SECLEVEL=#{seclevel}, + + + SEX=#{sex}, + + + snapshot_time=#{snapshotTime}, + + + STARTDATE=#{startdate}, + + + STATUS=#{status}, + + + SUBCOMPANYID1=#{subcompanyid1}, + + + SUBCOMPANYNAME=#{subcompanyname}, + + + TELEPHONE=#{telephone}, + + + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + + + USEKIND=#{usekind}, + + + WORKCODE=#{workcode}, + + + WORKROOM=#{workroom}, + + + workstartdate=#{workstartdate}, + + + workyear=#{workyear}, + + + WHERE ID = #{id} + + + + + + UPDATE hrsa_hrm_snapshot + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_hrm_snapshot + SET delete_type = 1 + WHERE id IN + + #{id} + + + + + delete from hrsa_hrm_snapshot + WHERE snapshot_time = #{snapshotTime} + + + + e + . + ID as employee_id + ,e.loginid + ,e.LASTNAME + ,e.SEX + ,e.BIRTHDAY + ,e.NATIONALITY + ,e.MARITALSTATUS + ,e.TELEPHONE + ,e.MOBILE + ,e.MOBILECALL + ,e.EMAIL + ,e.LOCATIONID + ,e.WORKROOM + ,e.HOMEADDRESS + ,e.RESOURCETYPE + ,e.STARTDATE + ,e.ENDDATE + ,e.JOBTITLE + ,j.JOBTITLENAME + ,e.JOBACTIVITYDESC + ,e.JOBLEVEL + ,e.SECLEVEL + ,e.DEPARTMENTID + ,d.DEPARTMENTNAME + ,e.SUBCOMPANYID1 + ,c.SUBCOMPANYNAME + ,e.COSTCENTERID + ,e.MANAGERID + ,e.ASSISTANTID + ,e.BANKID1 + ,e.ACCOUNTID1 + ,e.LASTLOGINDATE + ,e.CERTIFICATENUM + ,e.NATIVEPLACE + ,e.EDUCATIONLEVEL + ,e.BEMEMBERDATE + ,e.BEPARTYDATE + ,e.WORKCODE + ,e.REGRESIDENTPLACE + ,e.HEALTHINFO + ,e.RESIDENTPLACE + ,e.POLICY + ,e.DEGREE + ,e.USEKIND + ,e.JOBCALL + ,job.NAME as jobcallname + ,e.ACCUMFUNDACCOUNT + ,e.BIRTHPLACE + ,e.FOLK + ,e.RESIDENTPHONE + ,e.RESIDENTPOSTCODE + ,e.EXTPHONE + ,e.MANAGERSTR + ,e.STATUS + ,e.FAX + ,e.ISLABOUUNION + ,e.TEMPRESIDENTNUMBER + ,e.PROBATIONENDDATE + ,e.COUNTRYID + ,e.ACCOUNTTYPE + ,e.BELONGTO + ,e.ACCOUNTNAME + ,e.companystartdate + ,e.workstartdate + ,e.companyworkyear + ,e.workyear + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java index 1ce2b5fa6..b8c12c273 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java @@ -130,4 +130,6 @@ public interface SalaryAcctEmployeeMapper { int countNotDeclareByParam(@Param("param") AbnormalEmployeeListQueryParam queryParam); void updateIgnoreNull(@Param("salaryAcctEmployeePO")SalaryAcctEmployeePO salaryAcctEmployeePO); + + void lock(SalaryAcctEmployeePO salaryAcctEmployeePO); } diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 40caf1737..17377b967 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -25,6 +25,8 @@ + + @@ -81,7 +85,8 @@ jobtitle_id, jobcall, jobcall_id, - status) + status, + account_type) VALUES ( @@ -105,7 +110,8 @@ #{emp.jobtitleId}, #{emp.jobcall}, #{emp.jobcallId}, - #{emp.status} + #{emp.status}, + #{emp.accountType} ) @@ -121,7 +127,9 @@ jobtitle_id, jobcall, jobcall_id, - status) + status, + account_type + ) select #{emp.salaryAcctRecordId,jdbcType=DOUBLE}, @@ -144,7 +152,8 @@ #{emp.jobtitleId,jdbcType=DOUBLE}, #{emp.jobcall,jdbcType=VARCHAR}, #{emp.jobcallId,jdbcType=DOUBLE}, - #{emp.status,jdbcType=VARCHAR} + #{emp.status,jdbcType=VARCHAR}, + #{emp.accountType,jdbcType=INTEGER} from dual @@ -161,7 +170,9 @@ jobtitle_id, jobcall, jobcall_id, - status) + status, + account_type + ) VALUES ( #{emp.salaryAcctRecordId}, @@ -184,7 +195,8 @@ #{emp.jobtitleId}, #{emp.jobcall}, #{emp.jobcallId}, - #{emp.status} + #{emp.status}, + #{emp.accountType} ) @@ -262,7 +274,6 @@ AND employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) AND em.lastname LIKE '%'||#{param.employeeName}||'%' @@ -343,7 +354,7 @@ AND employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'+#{param.employeeName}+'%' @@ -521,7 +532,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -538,7 +548,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -555,7 +564,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE delete_type = 0 - AND salary_acct_record_id = #{param.salaryAcctRecordId} @@ -564,6 +572,9 @@ + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -573,6 +584,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- AND t.subcompany_id IN @@ -604,7 +627,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE CONCAT('%',#{param.employeeName},'%') @@ -623,8 +646,29 @@ ) + + AND t.salary_acct_record_id IN + + #{salaryAcctRecordId} + + + + AND t.employee_id IN + + #{employeeId} + + + + AND t.salary_sob_id IN + + #{salarySobId} + + + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -634,6 +678,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- AND t.subcompany_id IN @@ -665,7 +721,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'||#{param.employeeName}||'%' @@ -682,8 +738,29 @@ ) + + AND t.salary_acct_record_id IN + + #{salaryAcctRecordId} + + + + AND t.employee_id IN + + #{employeeId} + + + + AND t.salary_sob_id IN + + #{salarySobId} + + + + AND t.salary_acct_record_id = #{param.salaryAcctRecordId} + AND t.id IN @@ -693,6 +770,18 @@ AND t.tax_agent_id = #{param.taxAgentId} + + AND t.tax_agent_id IN + + #{taxAgentId} + + + + AND t.salary_month IN + + #{salaryMonth} + + -- AND t.subcompany_id IN @@ -724,7 +813,7 @@ AND t.employee_id IN ( SELECT id FROM hrmresource em WHERE em.status not in (7) - and (em.accounttype is null or em.accounttype = 0) + AND em.lastname LIKE '%'+#{param.employeeName}+'%' @@ -742,6 +831,24 @@ ) + + AND t.salary_acct_record_id IN + + #{salaryAcctRecordId} + + + + AND t.employee_id IN + + #{employeeId} + + + + AND t.salary_sob_id IN + + #{salarySobId} + + select record.id as salaryAcctRecordId, diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml index 55c41dc1c..bd1ba58d5 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml @@ -11,6 +11,7 @@ + @@ -24,6 +25,7 @@ , t.template_name , t.tenant_key , t.update_time + , t.type @@ -75,12 +77,21 @@ AND update_time = #{updateTime} + + AND type = #{type} + AND id IN #{id} + + AND type IN + + #{type} + + ORDER BY id DESC @@ -117,6 +128,9 @@ update_time, + + type, + @@ -146,6 +160,9 @@ #{updateTime}, + + #{type}, + @@ -161,6 +178,7 @@ template_name=#{templateName}, tenant_key=#{tenantKey}, update_time=#{updateTime}, + type=#{type}, WHERE id = #{id} AND delete_type = 0 @@ -194,6 +212,9 @@ update_time=#{updateTime}, + + type=#{type}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml index 21df577c4..693e9f222 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml @@ -409,12 +409,12 @@ update_time, creator, delete_type, tenant_key, data_type, shared_type, tax_agent_ids) VALUES - (#{item_id},#{item_name}, #{item_code}, #{item_systemType}, #{item_sysSalaryItemId}, - #{item_useDefault}, #{item_useInEmployeeSalary}, #{item_roundingMode}, - #{item_pattern}, - #{item_valueType}, #{item_formulaId}, #{item_description}, #{item_canEdit}, - #{item_createTime}, #{item_updateTime}, #{item_creator}, 0, #{item_tenantKey}, #{item_dataType}, - #{item_sharedType}, #{item_taxAgentIds}) + (#{item.id},#{item.name}, #{item.code}, #{item.systemType}, #{item.sysSalaryItemId}, + #{item.useDefault}, #{item.useInEmployeeSalary}, #{item.roundingMode}, + #{item.pattern}, + #{item.valueType}, #{item.formulaId}, #{item.description}, #{item.canEdit}, + #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey}, #{item.dataType}, + #{item.sharedType}, #{item.taxAgentIds}) @@ -425,27 +425,27 @@ select - #{item_id,jdbcType=DOUBLE}, - #{item_name,jdbcType=VARCHAR}, - #{item_code,jdbcType=VARCHAR}, - #{item_systemType,jdbcType=INTEGER}, - #{item_sysSalaryItemId,jdbcType=DOUBLE}, - #{item_useDefault,jdbcType=INTEGER}, - #{item_useInEmployeeSalary,jdbcType=INTEGER}, - #{item_roundingMode,jdbcType=INTEGER}, - #{item_pattern,jdbcType=INTEGER}, - #{item_valueType,jdbcType=INTEGER}, - #{item_formulaId,jdbcType=DOUBLE}, - #{item_description,jdbcType=VARCHAR}, - #{item_canEdit,jdbcType=INTEGER}, - #{item_createTime,jdbcType=DATE}, - #{item_updateTime,jdbcType=DATE}, - #{item_creator,jdbcType=DOUBLE}, + #{item.id,jdbcType=DOUBLE}, + #{item.name,jdbcType=VARCHAR}, + #{item.code,jdbcType=VARCHAR}, + #{item.systemType,jdbcType=INTEGER}, + #{item.sysSalaryItemId,jdbcType=DOUBLE}, + #{item.useDefault,jdbcType=INTEGER}, + #{item.useInEmployeeSalary,jdbcType=INTEGER}, + #{item.roundingMode,jdbcType=INTEGER}, + #{item.pattern,jdbcType=INTEGER}, + #{item.valueType,jdbcType=INTEGER}, + #{item.formulaId,jdbcType=DOUBLE}, + #{item.description,jdbcType=VARCHAR}, + #{item.canEdit,jdbcType=INTEGER}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.creator,jdbcType=DOUBLE}, 0, - #{item_tenantKey,jdbcType=VARCHAR}, - #{item_dataType,jdbcType=VARCHAR}, - #{item_sharedType,jdbcType=INTEGER}, - #{item_taxAgentIds,jdbcType=VARCHAR} + #{item.tenantKey,jdbcType=VARCHAR}, + #{item.dataType,jdbcType=VARCHAR}, + #{item.sharedType,jdbcType=INTEGER}, + #{item.taxAgentIds,jdbcType=VARCHAR} from dual @@ -456,12 +456,12 @@ rounding_mode, pattern, value_type, formula_id, description, can_edit, create_time, update_time, creator, delete_type, tenant_key, data_type, shared_type, tax_agent_ids) VALUES - (#{item_id},#{item_name}, #{item_code}, #{item_systemType}, #{item_sysSalaryItemId}, - #{item_useDefault}, #{item_useInEmployeeSalary}, #{item_roundingMode}, - #{item_pattern}, - #{item_valueType}, #{item_formulaId}, #{item_description}, #{item_canEdit}, - #{item_createTime}, #{item_updateTime}, #{item_creator}, 0, #{item_tenantKey}, #{item_dataType}, - #{item_sharedType}, #{item_taxAgentIds}) + (#{item.id},#{item.name}, #{item.code}, #{item.systemType}, #{item.sysSalaryItemId}, + #{item.useDefault}, #{item.useInEmployeeSalary}, #{item.roundingMode}, + #{item.pattern}, + #{item.valueType}, #{item.formulaId}, #{item.description}, #{item.canEdit}, + #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey}, #{item.dataType}, + #{item.sharedType}, #{item.taxAgentIds}) @@ -479,8 +479,8 @@ - - when id=#{item_id} then #{item_sortedIndex} + + when id=#{item.id} then #{item.sortedIndex} @@ -488,7 +488,7 @@ where id in - #{item_id} + #{item.id} diff --git a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java new file mode 100644 index 000000000..0aea946f8 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.salarysob; + +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleMapper + * @date 2024/04/23 17:36 + * @description + */ +public interface SalaryApprovalRuleMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(SalaryApprovalRulePO salaryApprovalRule); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + SalaryApprovalRulePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param salaryApprovalRule 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 篆刻篆号絖罧 + * + * @param salaryApprovalRule 篆合莅医 + * @return 菴綵怨茵 + */ + int update(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 篆刻綽順null絖罧 + * + * @param salaryApprovalRule 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * よ医 + * + * @param salaryApprovalRule 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(SalaryApprovalRulePO salaryApprovalRule); + + void deleteBySalarySobId(@Param("salarySobId") Long salarySobId); +} diff --git a/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml new file mode 100644 index 000000000..9d21ed200 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SalaryApprovalRuleMapper.xml @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + t.approval_group_setting + , t.create_time + , t.creator + , t.delete_type + , t.id + , t.open_approval + , t.salary_sob_id + , t.update_time + , t.workflow_url + + + + + + + + + + + + + + + INSERT INTO hrsa_salary_approval_rule + + + + approval_group_setting, + + + create_time, + + + creator, + + + delete_type, + + + id, + + + open_approval, + + + salary_sob_id, + + + update_time, + + + workflow_url, + + + + + #{approvalGroupSetting}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{openApproval}, + + + #{salarySobId}, + + + #{updateTime}, + + + #{workflowUrl}, + + + + + + + UPDATE hrsa_salary_approval_rule + + approval_group_setting=#{approvalGroupSetting}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + open_approval=#{openApproval}, + salary_sob_id=#{salarySobId}, + update_time=#{updateTime}, + workflow_url=#{workflowUrl}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_salary_approval_rule + + + approval_group_setting=#{approvalGroupSetting}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + open_approval=#{openApproval}, + + + salary_sob_id=#{salarySobId}, + + + update_time=#{updateTime}, + + + workflow_url=#{workflowUrl}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_salary_approval_rule + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_salary_approval_rule + SET delete_type=1 + WHERE salary_sob_id = #{salarySobId} AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml index d46406ff5..e05bdf60f 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml @@ -434,7 +434,7 @@ + SELECT + + FROM hrsa_page_link t + WHERE delete_type = 0 + + + + + + + + + + + + INSERT INTO hrsa_page_link + + + + create_time, + + + creator, + + + delete_type, + + + employee_id, + + + id, + + + page, + + + template_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{employeeId}, + + + #{id}, + + + #{page}, + + + #{templateId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_page_link + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + page=#{page}, + template_id=#{templateId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + page=#{page}, + + + template_id=#{templateId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_link + 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/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java new file mode 100644 index 000000000..2bcdd1f88 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java @@ -0,0 +1,78 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageListSettingPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageListSettingMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(PageListSettingPO pageListSetting); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + PageListSettingPO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param pageListSetting 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(PageListSettingPO pageListSetting); + + /** + * 篆刻篆号絖罧 + * + * @param pageListSetting 篆合莅医 + * @return 菴綵怨茵 + */ + int update(PageListSettingPO pageListSetting); + + /** + * 篆刻綽順null絖罧 + * + * @param pageListSetting 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(PageListSettingPO pageListSetting); + + /** + * よ医 + * + * @param pageListSetting 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(PageListSettingPO pageListSetting); + + /** + * 拷よ医 + * + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + + //キ蕁級∫莅ら臀 + PageListSettingPO getByPage(@Param("page") String page, @Param("defaultSetting") Integer defaultSetting, @Param("creator") Long creator); + + //キ蕁級∫臀罔≧ + List getTemplatesByPage(String page); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml new file mode 100644 index 000000000..ed8f14bb4 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.page + , t.setting + , t.tenant_key + , t.update_time + , t.default_setting + + + + + + + + + + + + + + + INSERT INTO hrsa_page_list_setting + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + page, + + + setting, + + + tenant_key, + + + update_time, + + + default_setting, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{page}, + + + #{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{tenantKey}, + + + #{updateTime}, + + + #{defaultSetting}, + + + + + + + + UPDATE hrsa_page_list_setting + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + page=#{page}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + default_setting=#{defaultSetting}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + page=#{page}, + + + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + default_setting=#{defaultSetting}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_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/setting/PageListTemplateMapper.java b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java new file mode 100644 index 000000000..b729cd64e --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageListTemplateMapper { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + /** + * >散ヨ + * + * @return 菴鐚羃≧菴腥List + */ + List listSome(PageListTemplatePO pageListTemplate); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + PageListTemplatePO getById(Long id); + + /** + * 医鐚綽順null絖罧 + * + * @param pageListTemplate 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(PageListTemplatePO pageListTemplate); + + + /** + * 篆刻篆号絖罧 + * + * @param pageListTemplate 篆合莅医 + * @return 菴綵怨茵 + */ + int update(PageListTemplatePO pageListTemplate); + + /** + * 篆刻綽順null絖罧 + * + * @param pageListTemplate 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(PageListTemplatePO pageListTemplate); + + /** + * よ医 + * + * @param pageListTemplate 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(PageListTemplatePO pageListTemplate); + + /** + * 拷よ医 + * @param ids 筝脂id + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml new file mode 100644 index 000000000..02d015d13 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.limit_ids + , t.name + , t.page + , t.setting + , t.shared_type + , t.system_type + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_list_template + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + limit_ids, + + + name, + + + page, + + + setting, + + + shared_type, + + + system_type, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{name}, + + + #{page}, + + + #{setting , jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{sharedType}, + + + #{systemType}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_page_list_template + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + name=#{name}, + page=#{page}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + shared_type=#{sharedType}, + system_type=#{systemType}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + name=#{name}, + + + page=#{page}, + + + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + shared_type=#{sharedType}, + + + system_type=#{systemType}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_template + 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/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml index 977fb9edd..f5b88a501 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml @@ -49,6 +49,16 @@ + + + + + + + + + + @@ -103,6 +113,15 @@ , t.update_time , t.tenant_key , t.payment_organization + , t.subcompany_name + , t.subcompany_id + , t.department_name + , t.department_id + , t.jobtitle_name + , t.jobtitle_id + , t.jobcall + , t.jobcall_id + , t.status t @@ -203,6 +222,19 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + + AND e.departmentid IN @@ -244,6 +276,18 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + AND e.departmentid IN @@ -285,6 +329,18 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + AND e.departmentid IN @@ -327,6 +383,18 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + AND e.department_id IN @@ -368,6 +436,18 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + AND e.department_id IN @@ -409,6 +489,18 @@ #{taxAgent} + + AND t.department_id IN + + #{fixedDepartmentId} + + + + AND t.subcompany_id IN + + #{fixedSubCompanyId} + + AND e.department_id IN @@ -434,7 +526,7 @@ LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 WHERE t.delete_type = 0 and e.status not in (7) - and (e.accounttype is null or e.accounttype = 0) + @@ -589,7 +681,7 @@ ON e.ID = l.resource_n WHERE( e.status != '5' - and (e.accounttype is null or e.accounttype = 0) + OR l.dismissdate IS NULL OR l.dismissdate = '' OR l.dismissdate @@ -659,7 +751,7 @@ - + @@ -808,7 +900,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) VALUES ( @@ -857,7 +950,16 @@ #{item.paymentOrganization}, #{item.socialPaymentComBaseString}, #{item.fundPaymentComBaseString}, - #{item.otherPaymentComBaseString} + #{item.otherPaymentComBaseString}, + #{item.subcompanyName}, + #{item.subcompanyId}, + #{item.departmentName}, + #{item.departmentId}, + #{item.jobtitleName}, + #{item.jobtitleId}, + #{item.jobcall}, + #{item.jobcallId}, + #{item.status} ) @@ -867,7 +969,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) select #{item.employeeId,jdbcType=DOUBLE}, @@ -915,7 +1018,16 @@ #{item.paymentOrganization,jdbcType=DOUBLE}, #{item.socialPaymentComBaseString,jdbcType=VARCHAR}, #{item.fundPaymentComBaseString,jdbcType=VARCHAR}, - #{item.otherPaymentComBaseString,jdbcType=VARCHAR} + #{item.otherPaymentComBaseString,jdbcType=VARCHAR}, + #{item.subcompanyName,jdbcType=VARCHAR}, + #{item.subcompanyId,jdbcType=DOUBLE}, + #{item.departmentName,jdbcType=VARCHAR}, + #{item.departmentId,jdbcType=DOUBLE}, + #{item.jobtitleName,jdbcType=VARCHAR}, + #{item.jobtitleId,jdbcType=DOUBLE}, + #{item.jobcall,jdbcType=VARCHAR}, + #{item.jobcallId,jdbcType=DOUBLE}, + #{item.status,jdbcType=VARCHAR} from dual @@ -926,7 +1038,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) VALUES ( #{item.employeeId}, @@ -974,7 +1087,16 @@ #{item.paymentOrganization}, #{item.socialPaymentComBaseString}, #{item.fundPaymentComBaseString}, - #{item.otherPaymentComBaseString} + #{item.otherPaymentComBaseString}, + #{item.subcompanyName}, + #{item.subcompanyId}, + #{item.departmentName}, + #{item.departmentId}, + #{item.jobtitleName}, + #{item.jobtitleId}, + #{item.jobcall}, + #{item.jobcallId}, + #{item.status} ) @@ -1045,7 +1167,7 @@ LEFT JOIN bill_hrmdismiss l ON e.ID = l.resource_n LEFT JOIN hrmdepartment d ON d.ID = e.departmentid WHERE - e.STATUS = 5 and (e.accounttype is null or e.accounttype = 0) AND h.payment_status = 0 + e.STATUS = 5 AND h.payment_status = 0 AND(l.dismissdate IS NOT NULL) )AS t @@ -1121,7 +1243,7 @@ LEFT JOIN hrmdepartment d ON d.ID = e.departmentid WHERE e.STATUS not in (4,5,6,7) - and (e.accounttype is null or e.accounttype = 0) + AND( l.dismissdate IS NULL OR l.dismissdate = '' diff --git a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml index 19b6fb3e5..ca12fe478 100644 --- a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml @@ -102,6 +102,15 @@ , t.update_time , t.tenant_key , t.payment_organization + , t.subcompany_name as subcompanyName + , t.subcompany_id as subcompanyId + , t.department_name as departmentName + , t.department_id as departmentId + , t.jobtitle_name as jobtitleName + , t.jobtitle_id as jobtitleId + , t.jobcall as jobcall + , t.jobcall_id as jobcallId + , t.status as status @@ -137,7 +146,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) VALUES ( @@ -185,7 +195,16 @@ #{item.paymentOrganization}, #{item.socialPaymentComBaseString}, #{item.fundPaymentComBaseString}, - #{item.otherPaymentComBaseString} + #{item.otherPaymentComBaseString}, + #{item.subcompanyName}, + #{item.subcompanyId}, + #{item.departmentName}, + #{item.departmentId}, + #{item.jobtitleName}, + #{item.jobtitleId}, + #{item.jobcall}, + #{item.jobcallId}, + #{item.status} ) @@ -195,7 +214,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) select @@ -243,7 +263,16 @@ #{item.paymentOrganization,jdbcType=DOUBLE}, #{item.socialPaymentComBaseString,jdbcType=VARCHAR}, #{item.fundPaymentComBaseString,jdbcType=VARCHAR}, - #{item.otherPaymentComBaseString,jdbcType=VARCHAR} + #{item.otherPaymentComBaseString,jdbcType=VARCHAR}, + #{item.subcompanyName,jdbcType=VARCHAR}, + #{item.subcompanyId,jdbcType=DOUBLE}, + #{item.departmentName,jdbcType=VARCHAR}, + #{item.departmentId,jdbcType=DOUBLE}, + #{item.jobtitleName,jdbcType=VARCHAR}, + #{item.jobtitleId,jdbcType=DOUBLE}, + #{item.jobcall,jdbcType=VARCHAR}, + #{item.jobcallId,jdbcType=DOUBLE}, + #{item.status,jdbcType=VARCHAR} from dual @@ -254,7 +283,8 @@ fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json, social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum, com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization, - social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string) + social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string, + subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status) VALUES ( #{item.employeeId}, @@ -301,7 +331,16 @@ #{item.paymentOrganization}, #{item.socialPaymentComBaseString}, #{item.fundPaymentComBaseString}, - #{item.otherPaymentComBaseString} + #{item.otherPaymentComBaseString}, + #{item.subcompanyName}, + #{item.subcompanyId}, + #{item.departmentName}, + #{item.departmentId}, + #{item.jobtitleName}, + #{item.jobtitleId}, + #{item.jobcall}, + #{item.jobcallId}, + #{item.status} ) diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index d6368f8b4..c7dfa1233 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -106,4 +106,6 @@ public interface FundSchemeMapper { * @param endTime */ void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); + + List listBySchemeId(@Param("fundSchemeId")Long id, @Param("runStatuses")List runStatus); } diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index 750d36814..644a21d18 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -265,7 +265,7 @@ AND payment_organization = #{paymentOrganization} AND fund_scheme_id is not null AND fund_start_time is not null AND fund_start_time #{billMonth} - AND (fund_end_time is null OR fund_end_time = ]]> #{billMonth}) + AND (fund_end_time is null OR fund_end_time = ]]> #{billMonth} OR fund_end_time ='') + + update hrsa_fund_archives diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index 6ad9fbe78..fff3bbd3b 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -105,4 +105,6 @@ public interface OtherSchemeMapper { * @param endTime */ void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); + + List listBySchemeId(@Param("schemeId") Long schemeId, @Param("runStatuses") List runStatuses); } diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index 7885d7358..ffdeb8194 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -248,7 +248,7 @@ AND payment_organization = #{paymentOrganization} AND other_scheme_id is not null AND other_start_time is not null AND other_start_time #{billMonth} - AND (other_end_time is null OR other_end_time = ]]> #{billMonth}) + AND (other_end_time is null OR other_end_time = ]]> #{billMonth} OR other_end_time ='') + + update hrsa_other_archives diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index 6e3e97982..246cb5c78 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -136,4 +136,6 @@ public interface SocialSchemeMapper { * @param endTime */ void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); + + List listBySchemeId(@Param("schemeId")Long schemeId, @Param("runStatuses")List runStatus); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index 1dba6c07f..18823cca7 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -336,7 +336,6 @@ LEFT JOIN bill_hrmdismiss f on a.id = f.resource_n WHERE a.status not in (7) - and (a.accounttype is null or a.accounttype = 0) ORDER BY a.id asc @@ -909,7 +908,7 @@ AND payment_organization = #{paymentOrganization} AND social_scheme_id is not null AND social_start_time is not null AND social_start_time #{billMonth} - AND (social_end_time is null OR social_end_time = ]]> #{billMonth}) + AND (social_end_time is null OR social_end_time = ]]> #{billMonth} OR social_end_time ='') + + update hrsa_social_archives diff --git a/src/com/engine/salary/remote/attend/entity/Attend4Salary.java b/src/com/engine/salary/remote/attend/entity/Attend4Salary.java index 701d82f69..39703a559 100644 --- a/src/com/engine/salary/remote/attend/entity/Attend4Salary.java +++ b/src/com/engine/salary/remote/attend/entity/Attend4Salary.java @@ -26,4 +26,9 @@ public class Attend4Salary { private List onlyEmpIds; private Map extendParam; + + /** + * 阪ょ罨 + */ + private String attendanceSerial; } diff --git a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java index 99553f193..c54bbf10b 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -2,14 +2,20 @@ package com.engine.salary.remote.attend.service.impl; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.kq.cmd.report.GetKQReportCmd; +import com.engine.salary.mapper.datacollection.AttendQuoteFieldMapper; import com.engine.salary.remote.attend.cmd.GetSearchListCmd; import com.engine.salary.remote.attend.entity.Attend4Salary; import com.engine.salary.remote.attend.service.RemoteAttend4SalaryService; +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.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; +import com.google.common.base.Joiner; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -17,24 +23,45 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.general.Util; +import weaver.hrm.User; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.ATTENDANCE_SERIAL_COLLECTION_BTN; + @Slf4j public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAttend4SalaryService { private final Boolean isLog = "true".equals(new BaseBean().getPropValue("hrmSalary", "log")); + private AttendQuoteFieldMapper getAttendQuoteFieldMapper() { + return MapperProxyFactory.getProxy(AttendQuoteFieldMapper.class); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //ょ罨≧井 + boolean isCollectAttendanceSerial = "1".equals(getSalarySysConfService(user).getValueByCode(ATTENDANCE_SERIAL_COLLECTION_BTN)); + + @Override public List> getColumns() { + + //ょ罨≧井 + String attendanceSerial = ""; + if (isCollectAttendanceSerial) { + List attendanceSerials = getAttendQuoteFieldMapper().getAttendanceSerials(); + attendanceSerial = Joiner.on(",").join((Iterable) attendanceSerials); + } + Map paramsMap = new HashMap(); -// paramsMap.put("pageIndex", 1); -// paramsMap.put("pageSize", 10); paramsMap.put("typeselect", "3"); paramsMap.put("viewScope", "0"); paramsMap.put("isNoAccount", "1"); - paramsMap.put("attendanceSerial", ""); + paramsMap.put("attendanceSerial", attendanceSerial); paramsMap.put("isFromMyAttendance", "1"); Map temp = new HashMap(); temp.put("data", JSONObject.toJSONString(paramsMap)); @@ -60,6 +87,21 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt }); } } + //阪ょ罨 + else if (dataIndex.equals("attendanceSerial") && column.get("children") != null) { + List list = (List) column.get("children"); + if (CollectionUtils.isNotEmpty(list)) { + list.stream() + .filter(leave -> leave.get("dataIndex") != null && StringUtils.isNotBlank(leave.get("dataIndex").toString())) + .forEach(leave -> { + Map map = Maps.newHashMapWithExpectedSize(2); + map.put("code", "attendanceSerial_" + leave.get("dataIndex").toString()); + String unit = "".equals(leave.get("unit").toString()) ? "" : "(" + leave.get("unit").toString() + ")"; + map.put("name", Util.null2String(column.get("title")) + "-" + leave.get("title") + unit); + columns.add(map); + }); + } + } // else if (dataIndex.equals("overtime") && column.get("children") != null) { List list = (List) column.get("children"); @@ -106,11 +148,10 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt @Override public List> getDatas(Attend4Salary attend4Salary) { - ValidUtil.doValidator(attend4Salary); - log.info("salaryAttend綣紮キゆ井鐚{}", attend4Salary); List> list = new ArrayList<>(); try { + ValidUtil.doValidator(attend4Salary); Map paramsMap = new HashMap(); paramsMap.put("pageIndex", 1); paramsMap.put("pageSize", 500); @@ -121,11 +162,14 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt List resourceIds = attend4Salary.getOnlyEmpIds().stream().map(String::valueOf).collect(Collectors.toList()); paramsMap.put("resourceId", String.join(",", resourceIds)); paramsMap.put("isNoAccount", "1"); - paramsMap.put("attendanceSerial", ""); + //罨 + paramsMap.put("attendanceSerial", isCollectAttendanceSerial ? attend4Salary.getAttendanceSerial() : ""); paramsMap.put("isFromMyAttendance", "1"); Map temp = new HashMap(); temp.put("data", JSONObject.toJSONString(paramsMap)); temp.put("reportType", "month"); + + log.info("salaryAttend綣紮キゆ井鐚{}", temp); list = (List>) commandExecutor.execute(new GetKQReportCmd(temp, user)).get("datas"); if (isLog) { log.info("salaryAttendキゆ井鐚{}", JSONUtils.toJSONString(list)); diff --git a/src/com/engine/salary/report/entity/bo/SalaryStatisticsReportBO.java b/src/com/engine/salary/report/entity/bo/SalaryStatisticsReportBO.java index 59abb699b..9ad7fb2fc 100644 --- a/src/com/engine/salary/report/entity/bo/SalaryStatisticsReportBO.java +++ b/src/com/engine/salary/report/entity/bo/SalaryStatisticsReportBO.java @@ -129,7 +129,9 @@ public class SalaryStatisticsReportBO { param.setDepart(((List) JSON.parseArray(po.getDepartSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); } // param.setGrade(((List) JSON.parseArray(po.getGradeSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); -// param.setPosition(((List) JSON.parseArray(po.getPositionSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + if (po.getPositionSetting() != null) { + param.setPosition(((List) JSON.parseArray(po.getPositionSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } if (po.getStatusSetting() != null) { param.setStatus(((List) JSON.parseArray(po.getStatusSetting(), Map.class)).stream().map(m -> m.get(key).toString()).collect(Collectors.toList())); } diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 3a6e00071..1b45b4881 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.NumberUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryacct.param.SalaryAcctEmployeeQueryParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; @@ -33,7 +34,6 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.wbi.util.Util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -89,6 +89,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + @Override public PageInfo listPage(SalaryStatisticsEmployeeQueryParam queryParam) { List list = Collections.emptyList(); @@ -108,7 +112,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .collect(Collectors.toSet()); // ヨ∵莎悟篋阪 - List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); + List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return page; } @@ -119,15 +124,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // // 紊篋阪id // Set extEmployeeIds = Sets.newHashSet(); // 篋阪id - Set innerEmployeeIds = Sets.newHashSet(); - for (SalaryAcctEmployeePO sae : salaryAcctEmployeeList) { -// if (EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(sae.getEmployeeType())) { -// extEmployeeIds.add(sae.getEmployeeId()); -// } else if (EmployeeTypeEnum.ORGANIZATION.getValue().equals(sae.getEmployeeType())) { -// innerEmployeeIds.add(sae.getEmployeeId()); -// } - innerEmployeeIds.add(sae.getEmployeeId()); - } + Set innerEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toCollection(LinkedHashSet::new)); + // 3.渇絖膣√ if (StringUtils.isNotEmpty(queryParam.getKeyword())) { // if (CollectionUtils.isNotEmpty(extEmployeeIds)) { @@ -158,10 +156,9 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala } } - List innerEmployeeIdList = innerEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); // List extEmployeeIdList = extEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); // 綺鐚綏ヤ - list = innerEmployeeIdList.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() + list = innerEmployeeIds.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() .id(e) // .employeeType(EmployeeTypeEnum.ORGANIZATION.getValue()) .build()).collect(Collectors.toList()); @@ -277,7 +274,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("id", se.getId().toString()); map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth())); map.put("taxAgent", taxAgentMap.get(se.getTaxAgentId())); - map.put("salarySob",SalarySobMap.get(se.getSalarySobId())); + map.put("salarySob", SalarySobMap.get(se.getSalarySobId())); map.put("acctTimes", salaryAcctRecordMap.get(se.getSalaryAcctRecordId())); map.put("userName", Util.null2String(emp.getUsername())); map.put("subCompany", Util.null2String(emp.getSubcompanyName())); @@ -285,6 +282,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("jobTitle", Util.null2String(emp.getJobtitleName())); map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null)); map.put("workCode", Util.null2String(emp.getWorkcode())); + map.put("idNo", Util.null2String(emp.getIdNo())); + map.put("companystartdate", Util.null2String(emp.getCompanystartdate())); // IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); // map.put("incomeCategory", Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); @@ -295,9 +294,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public PageInfo listSalaryAcctEmp(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { - List list = Collections.emptyList(); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); - // 1.紊, 薤キ筝腮g軸箙>査 Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); @@ -311,10 +307,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 2.綛贋医鐚羈鐚莎絮絮倶絖膃筝峨鐚羈菴sql between紊 List dataParam = new ArrayList<>(); if (StringUtils.isNotBlank(queryParam.getStartDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr() + "-01 00:00:00")); } if (StringUtils.isNotBlank(queryParam.getEndDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr() + "-01 00:00:00")); } Set salaryMonths = SalaryStatisticsEmployeeBO.getSalaryMonths(null, dataParam) .stream() @@ -322,18 +318,19 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .collect(Collectors.toSet()); // ヨ∵莎悟篋阪 - List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); + List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); if (CollectionUtils.isNotEmpty(queryParam.getSubCompanyIds()) || CollectionUtils.isNotEmpty(queryParam.getDepartmentIds()) || StringUtils.isNotBlank(queryParam.getKeyword())) { // 号膈 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); // 号渇莚菴羯 - if(StringUtils.isNotBlank(queryParam.getKeyword())) { + if (StringUtils.isNotBlank(queryParam.getKeyword())) { employeeList = employeeList.stream() - .filter(e -> (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) + .filter(e -> (StringUtils.isNotEmpty(e.getUsername()) && e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) .collect(Collectors.toList()); } List employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter( acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); } if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return new PageInfo<>(); @@ -343,29 +340,16 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala if (CollectionUtils.isNotEmpty(queryParam.getIds())) { salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(emp -> queryParam.getIds().contains(emp.getId())).collect(Collectors.toList()); } - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth)).collect(Collectors.toList()); - Collections.reverse(salaryAcctEmployeeList); - PageInfo SalaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth).reversed()).collect(Collectors.toList()); + PageInfo salaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); if (queryParam.isExport()) { - SalaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); + salaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); } - return SalaryAcctEmployeePageInfo; + return salaryAcctEmployeePageInfo; } @Override public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List salaryAcctEmployeeList) { - if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { - return SalaryStatisticsEmployeeDetailResultDTO.builder() - .salaryAcctEmployeeList(Collections.emptyList()) - .salaryAcctResultValueList(Collections.emptyList()) - .salaryItemList(Collections.emptyList()) - .build(); - } - - // キ悟膸井 - List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - // 3.キ莎蕁合 List salaryItemList = getSalaryItemService(user).listAll(); salaryItemList = salaryItemList.stream() @@ -384,6 +368,17 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala } }) .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { + return SalaryStatisticsEmployeeDetailResultDTO.builder() + .salaryAcctEmployeeList(Collections.emptyList()) + .salaryAcctResultValueList(Collections.emptyList()) + .salaryItemList(salaryItemList) + .build(); + } + + // キ悟膸井 + List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) @@ -391,92 +386,4 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .salaryItemList(salaryItemList) .build(); } - - - // @Override -// public void exportDetailList(Map map, SalaryStatisticsEmployeeDetailQueryParam queryParam) { -// DataCollectionEmployee employee = getSalaryEmployeeService(user).getEmployeeById(queryParam.getEmployeeId()); -// // キ悟井 -// SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult; -// if (Objects.isNull(employee)) { -// salaryStatisticsEmployeeDetailResult = SalaryStatisticsEmployeeDetailResultDTO.builder() -// .salaryAcctEmployeeList(Lists.newArrayList()) -// .salaryAcctResultValueList(Lists.newArrayList()) -// .salaryItemList(Lists.newArrayList()) -// .build(); -// } else { -// salaryStatisticsEmployeeDetailResult = this.getDetailSalaryAcctResult(queryParam); -// } -// -// String nameI18n = (StringUtils.isEmpty(employee.getUsername()) ? "" : "[" + employee.getUsername() + "]") + SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 177855, "莎膸茵"); -// -// List sheetList = new ArrayList<>(); -// ExcelSheetData excelSheetData = new ExcelSheetData(); -// // 1.綏ヤ膂水腱 -// excelSheetData.setSheetName(nameI18n); -// List headerList = Lists.newArrayList(); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 87614, "莎絮")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "筝腮g軸箙>査")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 121908, "九ユ緇蕁合")); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> headerList.add(item.getName())); -// // 2.茵紊 -// excelSheetData.setHeaders(Collections.singletonList(headerList.toArray(new String[]{}))); -// -// List taxAgentList = getTaxAgentService(user).listAll(tenantKey); -// Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentList, TaxAgentPO::getId, TaxAgentPO::getName); -// -// Map> acctResultValueMap = SalaryEntityUtil.convert2Map(salaryStatisticsEmployeeDetailResult.getSalaryAcctResultValueList(), SalaryAcctResultPO::getSalaryAcctEmployeeId, SalaryAcctResultPO::getResultValue); -// -// // 膸茖井 -// List> rows = new ArrayList<>(); -// for (SalaryAcctEmployeePO se : salaryStatisticsEmployeeDetailResult.getSalaryAcctEmployeeList()) { -// if (CollectionUtils.isNotEmpty(queryParam.getIds()) && !queryParam.getIds().contains(se.getId())) { -// continue; -// } -// List row = new ArrayList<>(); -// row.add(se.getSalaryMonth()); -// row.add(taxAgentMap.get(se.getTaxAgentId())); -// IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); -// row.add(Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); -// // 莎蕁合 -// Map resultValueMap = Optional.ofNullable(acctResultValueMap.get(se.getId())).orElse(Maps.newHashMap()); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> row.add(Optional.ofNullable(resultValueMap.get(item.getId().toString())).orElse(""))); -// -// rows.add(row); -// } -// if (CollectionUtils.isNotEmpty(rows)) { -// List countRow = new ArrayList<>(); -// countRow.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 93278, "莅")); -// countRow.add("-"); -// countRow.add("-"); -// -// for (int i = 3; i < headerList.size(); i++) { -// BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.D_ZERO); -// for (List row : rows) { -// sumBigDecimal = sumBigDecimal.add(new BigDecimal(StringUtils.isEmpty(row.get(i).toString()) ? SalaryStatisticsReportBO.ZERO : row.get(i).toString())); -// } -// countRow.add(sumBigDecimal.toString()); -// } -// rows.add(countRow); -// } -// -// // 3.茵井 -// excelSheetData.setRows(rows); -// -// sheetList.add(excelSheetData); -// -// salaryBatchService.simpleExportExcel(ExportExcelInfo.builder() -//// .sharePassword(queryParam.getSharePassword()) -// .bizId(map.get("biz").toString()) -// .flag(true) -// .userId(employeeId) -// .eteamsId(map.get("eteamsId").toString()) -// .tenantKey(tenantKey) -// .operator(map.get("username").toString()) -// .module(map.get("module").toString()) -// .fileName(nameI18n + ReportTimeUtil.getFormatLocalDateTime(LocalDateTime.now())) -// .handlerName("exportSalaryStatisticsEmployeeDetailList") -// .dataType(nameI18n) -// .function("exportSalaryStatisticsEmployeeDetailList").build(), sheetList); -// } } diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index b75c5c413..2b62276cd 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -33,6 +33,8 @@ import com.engine.salary.report.service.SalaryStatisticsReportService; import com.engine.salary.report.util.ReportTimeUtil; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.*; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; @@ -54,6 +56,8 @@ import weaver.wechat.util.Utils; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 膸莅≧ヨ; *

Copyright: Copyright (c) 2022

@@ -71,6 +75,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary public static final String LAST_INFO = "lastInfoList"; public static final String SAME_INFO = "sameInfoList"; + private final boolean isRealOrg = "1".equals(getSalarySysConfService(user).getValueByCode(REPORT_ORGANIZATIN_TYPE)); private SalaryStatisticsReportMapper getSalaryStatisticsReportMapper() { return MapperProxyFactory.getProxy(SalaryStatisticsReportMapper.class); @@ -112,6 +117,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } // private ExtEmployeeService extEmployeeService; // // private HrmCommonEmployeeService hrmCommonEmployeeService; @@ -197,16 +205,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary this.getSalaryStatisticsReportMapper().updateIgnoreNull(poNew); // 莅医ュ - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "贋井ヨ;")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "贋井ヨ;")); - loggerContext.setOldValues(po); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "贋井ヨ;")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "贋井ヨ;")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } else { List list = listByName(saveParam.getReportName()); if (CollectionUtils.isNotEmpty(list)) { @@ -217,15 +225,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().insertIgnoreNull(poNew); // 莅医ュ - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "医ヨ;")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "医ヨ;")); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "医ヨ;")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "医ヨ;")); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } return StringUtils.EMPTY; } @@ -305,16 +313,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsItemService(user).saveOrUpdateBatch(salaryStatisticsItemList); //莅医ュ - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(po.getId())); - loggerContext.setTargetName(po.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "贋井ヨ;")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "贋井ヨ;")); - loggerContext.setOldValues(oldPO); - loggerContext.setNewValues(po); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(po.getId())); + loggerContext.setTargetName(po.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "贋井ヨ;")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "贋井ヨ;")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(po); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); return StringUtils.EMPTY; } @@ -333,17 +341,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().deleteByIds(deleteIds); //よ莎蕁 getSalaryStatisticsItemService(user).deleteByReportIds(deleteIds); - list.forEach(e -> { - // 莅医ュ - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(e.getId())); - loggerContext.setTargetName(e.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "ゆヨ;")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "ゆヨ;") + e.getReportName()); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); - }); + list.forEach(e -> { + // 莅医ュ + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(e.getId())); + loggerContext.setTargetName(e.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "ゆヨ;")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "ゆヨ;") + e.getReportName()); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + }); } Map resultMap = new HashMap<>(2); @@ -396,8 +404,8 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary loggerContext.setTargetId(String.valueOf(po.getId())); loggerContext.setTargetName(po.getReportName()); loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "医ヨ;")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "医ヨ;")); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "医ヨ;")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "医ヨ;")); loggerContext.setNewValues(po); SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } @@ -445,8 +453,18 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary // キヨ;膸莅∴莎蕁合 List salaryItemIds = salaryStatisticsItemPOS.stream().filter(item -> StringUtils.isNotBlank(item.getItemValue())).map(p -> p.getItemValue().split(",")).flatMap(Arrays::stream).map(Long::valueOf).collect(Collectors.toList()); // 域習 - param.setSalaryStartMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryStartMonth())); - param.setSalaryEndMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryEndMonth())); + String salaryStartMonth = param.getSalaryStartMonth(); + if (salaryStartMonth == null) { + param.setSalaryStartMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryStartMonth())); + } else { + param.setSalaryStartMonth(SalaryDateUtil.getFormatYearMonth(SalaryDateUtil.dateStrToLocalDate(salaryStartMonth))); + } + String salaryEndMonth = param.getSalaryEndMonth(); + if (salaryEndMonth == null) { + param.setSalaryEndMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryEndMonth())); + } else { + param.setSalaryEndMonth(SalaryDateUtil.getFormatYearMonth(SalaryDateUtil.dateStrToLocalDate(salaryEndMonth))); + } String key = "id"; if (reportPO.getTaxAgentSetting() != null) { param.setTaxAgent(((List) JSON.parseArray(reportPO.getTaxAgentSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); @@ -469,7 +487,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(queryParam); // 莅丞舟dimensionValue筝榊惨綺 - SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder().list(salaryAcctEmployeeList).lastList(Collections.emptyList()).sameList(Collections.emptyList()).salaryStatisticsItemList(salaryStatisticsItemPOS).employeeId((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).dimensionValue(param.getDimensionValue()).build(); + SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder() + .list(salaryAcctEmployeeList) + .lastList(Collections.emptyList()) + .sameList(Collections.emptyList()) + .salaryStatisticsItemList(salaryStatisticsItemPOS) + .employeeId((long) user.getUID()) + .dimensionValue(param.getDimensionValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); Map> resultMap = new HashMap<>(); List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); @@ -606,7 +632,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary DataCollectionEmployee emp = employeeMap.get(se.getEmployeeId()); resultMap.put("id", se.getId().toString()); resultMap.put("userName", emp == null ? "" : emp.getUsername()); - resultMap.put("departmentName", emp == null ? "" : emp.getDepartmentName()); + resultMap.put("departmentName", se.getDepartmentName()); resultMap.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth())); resultMap.put("taxAgent", taxAgentMap.get(se.getTaxAgentId())); resultMap.put("salarySob", SalarySobMap.get(se.getSalarySobId())); @@ -775,38 +801,74 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map subComIdNameMap = new HashMap<>(); Map lastEmpIdSubComMap = new HashMap<>(); Map sameEmpIdSubComMap = new HashMap<>(); - comInfoMap.forEach((k, v) -> { - subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); - empIdSubComMap.put(k, v.getSubcompanyid()); - subComIds.add(v.getSubcompanyid()); - }); - lastComInfoMap.forEach((k, v) -> { - lastEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); - sameComInfoMap.forEach((k, v) -> { - sameEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); + + if (isRealOrg) { + comInfoMap.forEach((k, v) -> { + subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); + empIdSubComMap.put(k, v.getSubcompanyid()); + subComIds.add(v.getSubcompanyid()); + }); + lastComInfoMap.forEach((k, v) -> { + lastEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + sameComInfoMap.forEach((k, v) -> { + sameEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + } else { + data.getList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + subComIdNameMap.put(employee.getSubcompanyId(), employee.getSubcompanyName()); + subComIds.add(employee.getSubcompanyId()); + empIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + lastEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + sameEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + } + String dimensionValue = data.getDimensionValue(); subComIds.forEach(subComId -> { if (dimensionValue == null) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, subComIdNameMap.get(subComId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(subComEmployeePOS, lastSubComEmployeePOS, sameSubComEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, subComIdNameMap.get(subComId))) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } data.setListByDimensionValue(subComEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "膸")); @@ -815,6 +877,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } } else if (StringUtils.equals(dimensionValue, "膸")) { List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } @@ -838,44 +903,78 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map lastEmpIdDepartIdMap = new HashMap<>(); Map sameEmpIdDepartIdMap = new HashMap<>(); Map departIdNameMap = new HashMap<>(); - simpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); - departIds.add(employee.getDepartmentId()); - empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - lastSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - sameSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); + if (isRealOrg) { + simpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + lastSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + sameSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } else { + data.getList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } String dimensionValue = data.getDimensionValue(); departIds.forEach(departId -> { if (dimensionValue == null) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, departIdNameMap.get(departId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(departEmployeePOS, lastDepartEmployeePOS, sameDepartEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, departIdNameMap.get(departId))) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } data.setListByDimensionValue(departEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + + } if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "膸")); @@ -883,7 +982,10 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary records.add(noGrouping); } } else if (StringUtils.equals(dimensionValue, "膸")) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } @@ -1090,9 +1192,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary // List accountDetailPOList = data.getList().stream().filter(po -> pageEmployeeIds.contains(po.getEmployeeId())).collect(Collectors.toList()); List> records = new ArrayList<>(); List accountDetailPOList = data.getList(); - Map> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); - Map> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); - Map> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); + Map> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); + Map> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); + Map> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId, LinkedHashMap::new, Collectors.toList())); List empIds = accountDetailPOList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()); Map employeeByIdMap = getSalaryEmployeeService(user).getEmployeeByIdsAll(empIds).stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, o -> o)); diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java index a98c909ea..4fa4ae64a 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java @@ -73,7 +73,7 @@ public class SalaryStatisticsEmployeeController { } /** - * 綏ヨ莎茵 + * 莎膸 * * @param queryParam * @return @@ -134,17 +134,4 @@ public class SalaryStatisticsEmployeeController { throw e; } } - -// /** -// * 絲弱阪綏ヨ茵 -// * -// * @param queryParam -// * @return -// */ -// @PostMapping("/exportDetailList") -// @ApiOperation("絲弱阪綏ヨ茵") -// @WeaPermission(publicPermission = true) -// public WeaResult> exportDetailList(@RequestBody SalaryStatisticsEmployeeDetailQueryParam queryParam) { -// return WeaResult.success(getSalaryStatisticsEmployeeWrapper(user).exportDetailList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); -// } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 6fa2c9a77..5e2421a08 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -1,7 +1,6 @@ package com.engine.salary.report.wrapper; import com.cloudstore.eccom.constant.WeaBoolAttr; -import com.cloudstore.eccom.pc.table.WeaTable; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; @@ -23,7 +22,11 @@ import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.report.service.impl.SalaryStatisticsEmployeeServiceImpl; import com.engine.salary.report.util.ReportDataUtil; import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryItemServiceImpl; +import com.engine.salary.service.impl.SettingServiceImpl; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelUtilPlus; @@ -35,7 +38,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import weaver.general.PageIdConst; import weaver.general.Util; import weaver.hrm.User; @@ -46,6 +48,9 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_DETAILS_REPORT_SHOW_TYPE; + /** * 膸莅≦綏ユ膸 *

Copyright: Copyright (c) 2022

@@ -64,6 +69,17 @@ public class SalaryStatisticsEmployeeWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //罔≧炊丞ず + private final boolean templateShow = "1".equals(getSalarySysConfService(user).getValueByCode(SALARY_DETAILS_REPORT_SHOW_TYPE)); + /** * 綏ュ茵 * @@ -136,6 +152,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "絏篏"), "jobTitle")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ョ倶"), "status")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ュ"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "ヨユ"), "companystartdate")); } columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "罨≧"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); // columns.add(new WeaTableColumn("100px",SalaryI18nUtil.getI18nLabel( 121908, "九ユ緇蕁合"), "incomeCategory")); @@ -161,56 +178,33 @@ public class SalaryStatisticsEmployeeWrapper extends Service { SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); - Map countResultMap = Maps.newHashMap(); - if (CollectionUtils.isNotEmpty(records)) { + PageInfo> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); + pageInfo.setList(records); + pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); + + List weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue()); + + // 膸 + resultMap.put("columns", weaTableColumns); + resultMap.put("pageInfo", pageInfo); + if (queryParam.isExport()) { + Map countResultMap = Maps.newHashMap(); List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); - for (SalaryItemPO item : salaryItems) { - BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); - String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; - for (Map record : records) { - if (record.containsKey(itemKey)) { - if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + if (CollectionUtils.isNotEmpty(records)) { + for (SalaryItemPO item : salaryItems) { + BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); + String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; + for (Map record : records) { + if (Objects.nonNull(record.get(itemKey)) && NumberUtils.isCreatable(record.get(itemKey).toString())) { sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); - record.put(itemKey, record.get(itemKey).toString()); } } - } - // 莎蕁合莅 - if (queryParam.isExport()) { countResultMap.put(itemKey, sumBigDecimal.toString()); } } - } - PageInfo> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); - pageInfo.setList(records); - if (queryParam.isExport()) { - pageInfo.setList(records); - } - pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); - - // 茵columns - List weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true); - - // 膸 - if (queryParam.isExport()) { - resultMap.put("columns", weaTableColumns); resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList()); resultMap.put("countResult", countResultMap); - } else { - WeaTable table = new WeaTable(); - String pageId = "b72ed4bb-725e-45de-aea1-4eb4c9184af7"; - table.setPageID(pageId); - table.setPageUID(pageId + user.getUID()); - table.setPagesize(PageIdConst.getPageSize(pageId, user.getUID())); - table.setBackfields(""); - table.setColumns(weaTableColumns); - - WeaResultMsg result = new WeaResultMsg(false); - result.putAll(table.makeDataResult()); - result.success(); - resultMap.put("dataKey", result.getResultMap()); } - resultMap.put("pageInfo", pageInfo); return resultMap; } @@ -221,6 +215,8 @@ public class SalaryStatisticsEmployeeWrapper extends Service { */ public Map salaryListSum(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { Map resultMap = Maps.newHashMap(); + Map sumResultMap = Maps.newHashMap(); + resultMap.put("sumRow", sumResultMap); if (StringUtils.isBlank(queryParam.getStartDateStr()) || StringUtils.isBlank(queryParam.getEndDateStr())) { return resultMap; } @@ -228,8 +224,10 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // キ篋阪 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); List employeePOS = salaryAcctEmployeePageInfo.getList(); + if (CollectionUtils.isEmpty(employeePOS)) { + return resultMap; + } - Map sumResultMap = Maps.newHashMap(); List> empParts = Lists.partition(employeePOS, 500); @@ -247,7 +245,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; for (Map record : records) { if (record.containsKey(itemKey)) { - if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + if (Objects.nonNull(record.get(itemKey)) && NumberUtils.isCreatable(record.get(itemKey).toString())) { sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); } } @@ -270,9 +268,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { queryParam.setCurrent(1); queryParam.setExport(true); Map resultMap = salaryList(queryParam); - List columns = (List)resultMap.get("columns"); + List columns = (List) resultMap.get("columns"); List> resultList = ((PageInfo>) resultMap.get("pageInfo")).getList(); - Map countResult = (Map)resultMap.get("countResult"); + Map countResult = (Map) resultMap.get("countResult"); Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); // キ莎蕁合篆絨遺 @@ -285,7 +283,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { SalaryItemPO salaryItemPO = salaryItemMap.get(column.getColumn()); Integer pattern = salaryItemPO == null ? 0 : salaryItemPO.getPattern(); String dataType = salaryItemPO == null ? SalaryDataTypeEnum.STRING.getValue() : salaryItemPO.getDataType(); - finalColumns.add(new WeaTableColumnGroup("100px", column.getText(), column.getColumn(), "false", pattern, dataType)); + finalColumns.add(new WeaTableColumnGroup("100px", Util.formatMultiLang(column.getText()), column.getColumn(), "false", pattern, dataType)); } }); List> rowList = new ArrayList<>(); @@ -295,7 +293,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { for (Map valueMap : resultList) { List list = new ArrayList<>(); for (Object column : finalColumns) { - WeaTableColumnGroup col = (WeaTableColumnGroup)column; + WeaTableColumnGroup col = (WeaTableColumnGroup) column; if (col.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { list.add(new BigDecimal(Util.null2String(valueMap.get(col.getColumn())))); @@ -312,7 +310,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { List sumRow = new ArrayList<>(); sumRow.add("肢"); for (int i = 1; i < finalColumns.size(); i++) { - WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup)finalColumns.get(i); + WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup) finalColumns.get(i); if (weaTableColumnGroup.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { sumRow.add(new BigDecimal(Util.null2String(countResult.get(weaTableColumnGroup.getColumn())))); diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 22fb6261f..9d990ea50 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -34,7 +34,6 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -437,14 +436,11 @@ public class SalaryStatisticsReportWrapper extends Service { // キ紊 List weaTableColumns = (List) result.get("columns"); PageInfo> page = (PageInfo>) result.get("pageInfo"); - // 膸茖莅 - Map countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, (long) user.getUID()); + Map countResultMap = (Map) result.get("countResult"); List> list = page.getList(); - if (CollectionUtils.isNotEmpty(list) && MapUtils.isNotEmpty(countResultMap)) { - list.add(countResultMap); - } // キ井 - List> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList()); + List> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue()))).collect(Collectors.toList()); + records.add(countResultMap); List rows = new ArrayList<>(); rows.add(weaTableColumns); @@ -466,7 +462,7 @@ public class SalaryStatisticsReportWrapper extends Service { List numberItemIds = salaryItemPOList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).map(salaryItemPO -> salaryItemPO.getId().toString()).collect(Collectors.toList()); Map salaryStatisticsItemMap = SalaryEntityUtil.convert2Map(salaryStatisticsItemList, statisticsItemPO -> statisticsItemPO.getId().toString()); - for (Map map : records) { + for (Map map : records) { List row = Lists.newArrayListWithExpectedSize(records.size()); head.forEach(k -> { // キ医取 @@ -476,7 +472,7 @@ public class SalaryStatisticsReportWrapper extends Service { SalaryStatisticsItemPO salaryStatisticsItemPO = salaryStatisticsItemMap.get(salaryItemId); if (salaryStatisticsItemPO != null) { Optional textItemOptional = Arrays.stream(salaryStatisticsItemPO.getItemValue().split(",")).filter(itemId -> !numberItemIds.contains(itemId)).findFirst(); - row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(map.getOrDefault(k, StringUtils.EMPTY).replace(",", ""))) ? new BigDecimal(map.get(k).replace(",", "")) : map.getOrDefault(k, StringUtils.EMPTY)); + row.add((!textItemOptional.isPresent() && NumberUtils.isCreatable(Utils.null2String(map.get(k)).replaceAll(",", ""))) ? new BigDecimal(Utils.null2String(map.get(k)).replaceAll(",", "")) : map.getOrDefault(k, StringUtils.EMPTY)); } else { row.add(map.getOrDefault(k, StringUtils.EMPTY)); } diff --git a/src/com/engine/salary/service/OtherDeductionService.java b/src/com/engine/salary/service/OtherDeductionService.java index e77c70995..c8e72bb1e 100644 --- a/src/com/engine/salary/service/OtherDeductionService.java +++ b/src/com/engine/salary/service/OtherDeductionService.java @@ -1,9 +1,8 @@ package com.engine.salary.service; -import com.engine.salary.entity.datacollection.dto.OtherDeductionListDTO; -import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; +import com.engine.salary.entity.datacollection.dto.*; import com.engine.salary.entity.datacollection.param.*; -import com.engine.salary.entity.datacollection.po.OtherDeductionPO; +import com.engine.salary.entity.datacollection.po.*; import com.engine.salary.util.page.PageInfo; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -47,15 +46,13 @@ public interface OtherDeductionService { /** * 絲弱 - * */ XSSFWorkbook export(OtherDeductionQueryParam queryParam); /** * 絲弱肴 - * */ - XSSFWorkbook exportDetail( OtherDeductionQueryParam queryParam); + XSSFWorkbook exportDetail(OtherDeductionQueryParam queryParam); /** * 筝莉遵弱ユ─ @@ -65,6 +62,14 @@ public interface OtherDeductionService { */ XSSFWorkbook downloadTemplate(OtherDeductionQueryParam param); + /** + * 筝莉醇膸罔≧ + * + * @param param + * @return + */ + XSSFWorkbook downloadDetailTemplate(OtherDeductionQueryParam param); + /** * 蘂茹 */ @@ -75,7 +80,13 @@ public interface OtherDeductionService { */ Map importData(OtherDeductionImportParam importParam); - + /** + * 絲弱ユ膸井 + * + * @param importParam + * @return + */ + Map importDetailData(OtherDeductionImportParam importParam); /** * キ銀腮iゆ井 @@ -112,4 +123,37 @@ public interface OtherDeductionService { OtherDeductionRecordDTO getOtherDeduction(OtherDeductionParam otherDeductionParam); String extendToLastMonth(OtherDeductionExtendLastParam param); + + PageInfo freeIncomeList(OtherDeductionDetailQueryParam param); + PageInfo derateDeductionList(OtherDeductionDetailQueryParam param); + PageInfo endowmentInsuranceList(OtherDeductionDetailQueryParam param); + PageInfo grantDonationList(OtherDeductionDetailQueryParam param); + PageInfo healthInsuranceList(OtherDeductionDetailQueryParam param); + PageInfo otherDerateDeductionList(OtherDeductionDetailQueryParam param); + PageInfo personalPensionList(OtherDeductionDetailQueryParam param); + + List queryFreeIncomes(OtherDeductionFreeListQueryParam param); + List queryDerateDeductions(OtherDeductionFreeListQueryParam param); + List queryEndowmentInsurances(OtherDeductionFreeListQueryParam param); + List queryGrantDonations(OtherDeductionFreeListQueryParam param); + List queryHealthInsurances(OtherDeductionFreeListQueryParam param); + List queryOtherDerateDeductions(OtherDeductionFreeListQueryParam param); + List queryPersonalPensions(OtherDeductionFreeListQueryParam param); + + void saveFreeIncome(FreeIncomeSaveParam param); + void saveEndowmentInsurance(EndowmentInsuranceSaveParam param); + void saveGrantDonation(GrantDonationSaveParam param); + void saveHealthInsurance(HealthInsuranceSaveParam param); + void saveOtherDerateDeduction(OtherDerateDeductionSaveParam param); + void saveDerateDeduction(DerateDeductionSaveParam param); + void savePersonalPension(PersonalPensionSaveParam param); + + void deleteFreeIncome(OtherDeductionDetailDeleteParam param); + void deleteEndowmentInsurance(OtherDeductionDetailDeleteParam param); + void deleteGrantDonation(OtherDeductionDetailDeleteParam param); + void deleteHealthInsurance(OtherDeductionDetailDeleteParam param); + void deleteOtherDerateDeduction(OtherDeductionDetailDeleteParam param); + void deleteDerateDeduction(OtherDeductionDetailDeleteParam param); + void deletePersonalPension(OtherDeductionDetailDeleteParam param); + } diff --git a/src/com/engine/salary/service/RecordsBuildService.java b/src/com/engine/salary/service/RecordsBuildService.java index ab3c105a6..3edbecd45 100644 --- a/src/com/engine/salary/service/RecordsBuildService.java +++ b/src/com/engine/salary/service/RecordsBuildService.java @@ -14,7 +14,7 @@ import java.util.Map; **/ public interface RecordsBuildService { - List> buildCommonRecords(List list, Long employeeId); + List> buildCommonRecords(List list, Long employeeId, boolean dynamicEmpInfo); List> buildCommonRecordsWithStyle(List list, Long employeeId); diff --git a/src/com/engine/salary/service/SIArchivesService.java b/src/com/engine/salary/service/SIArchivesService.java index 33d150060..a5ac0f1c8 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -78,7 +78,7 @@ public interface SIArchivesService { /** * 拷鐚贋・鐚綛句篋膽雁些 */ - Map stopWithoutLimit(Collection ids, String yearMonth); + Map stopWithoutLimit(Collection ids, String yearMonth, String fundEndYearMonth, String otherEndYearMonth); /** * @@ -165,4 +165,6 @@ public interface SIArchivesService { List listInsuranceArchivesFundSchemeByIds(List ids); List listInsuranceArchivesOtherSchemeByIds(List ids); + + List listAll(); } diff --git a/src/com/engine/salary/service/SIExportService.java b/src/com/engine/salary/service/SIExportService.java index 045ea5f1e..f9ee4608e 100644 --- a/src/com/engine/salary/service/SIExportService.java +++ b/src/com/engine/salary/service/SIExportService.java @@ -30,5 +30,5 @@ public interface SIExportService { */ XSSFWorkbook exportAccount(Integer paymentStatus, InsuranceExportParam param); - List> buildCommonRecords(List list); + List> buildCommonRecords(List list, boolean isImport); } diff --git a/src/com/engine/salary/service/SISchemeService.java b/src/com/engine/salary/service/SISchemeService.java index e465d2740..86eb024ee 100644 --- a/src/com/engine/salary/service/SISchemeService.java +++ b/src/com/engine/salary/service/SISchemeService.java @@ -27,7 +27,7 @@ public interface SISchemeService { Map insertScheme(Map params); - Map update(Map params); + String update(Map params); Map delete(Map params); diff --git a/src/com/engine/salary/service/SalaryAcctEmployeeService.java b/src/com/engine/salary/service/SalaryAcctEmployeeService.java index e1fe3f502..f004aec8b 100644 --- a/src/com/engine/salary/service/SalaryAcctEmployeeService.java +++ b/src/com/engine/salary/service/SalaryAcctEmployeeService.java @@ -280,4 +280,6 @@ public interface SalaryAcctEmployeeService { * @param salaryAcctEmployeePO */ void updateIgnoreNull(SalaryAcctEmployeePO salaryAcctEmployeePO); + + void lock(SalaryAcctEmployeePO salaryAcctEmployeePO); } diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index 44aed9df9..e23815ba3 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -117,7 +117,7 @@ public interface SalaryAcctExcelService { ExcelPreviewDTO previewImportSalaryAcctResult(SalaryAcctImportParam param); - void cacheImportField(List salaryItems); + void cacheImportField(SalaryAcctResultTemplateSaveParam param); void cacheExportField(List salaryItems); diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java index 51eb656e1..8e203bf30 100644 --- a/src/com/engine/salary/service/SalaryAcctRecordService.java +++ b/src/com/engine/salary/service/SalaryAcctRecordService.java @@ -11,6 +11,7 @@ import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.util.page.PageInfo; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Set; @@ -216,6 +217,8 @@ public interface SalaryAcctRecordService { List listSome(SalaryAcctRecordPO po); + void updateDate(Long id, Date updateTime); + /** * 号莎悟莅医idヨ√活筝腮g軸箙>査 * diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index b4af31089..1d861e2ef 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -167,6 +167,13 @@ public interface SalaryAcctResultService { */ List listBySalaryAcctRecordIdsAndTaxAgentIds(Collection salaryAcctRecordIds, Collection taxAgentIds); + /** + * 絎 + * @param param + */ + void lock(SalaryAcctResultLockParam param); + + /** * 絎蕁合 * diff --git a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java index 7696cb4bf..a2b4c9c4a 100644 --- a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java +++ b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java @@ -75,5 +75,5 @@ public interface SalaryAcctResultTemplateService { * @param salarySobId * @return */ - List listBySalarySobId(Long salarySobId); + List listBySalarySobId(Long salarySobId,List types); } diff --git a/src/com/engine/salary/service/SalaryApprovalRuleService.java b/src/com/engine/salary/service/SalaryApprovalRuleService.java new file mode 100644 index 000000000..21caa1c1d --- /dev/null +++ b/src/com/engine/salary/service/SalaryApprovalRuleService.java @@ -0,0 +1,117 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; + +import java.util.Collection; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleService + * @date 2024/04/23 17:33 + * @description 莎悟絎≧壕 + */ +public interface SalaryApprovalRuleService { + + /** + * ヨ∽莅医 + * + * @return 菴鐚羃≧菴腥List + */ + List listAll(); + + + /** + * 号筝脂ヨ + * + * @param id 筝脂 + * @return 菴莅医鐚羃≧菴null + */ + SalaryApprovalRulePO getById(Long id); + + + /** + * 医鐚綽順null絖罧 + * + * @param salaryApprovalRule 医莅医 + * @return 菴綵怨茵 + */ + int insertIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 篆刻篆号絖罧 + * + * @param salaryApprovalRule 篆合莅医 + * @return 菴綵怨茵 + */ + int update(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 篆刻綽順null絖罧 + * + * @param salaryApprovalRule 篆合莅医 + * @return 菴綵怨茵 + */ + int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule); + + /** + * よ医 + * + * @param salaryApprovalRule 緇ょ莅医 + * @return 菴綵怨茵 + */ + int delete(SalaryApprovalRulePO salaryApprovalRule); + + /** + * 号茣絅idヨ√≧壕丞舟 + * @param salarySobId + * @return + */ + SalaryApprovalRulePO getBySalarySobId(Long salarySobId); + + /** + * 号莎茣絅id + * @param salarySobId + */ + void deleteBySalarySobId(Long salarySobId); + + /** + * 莎茣絅莎絎≧壕 + * @param queryParam + * @return + */ + SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam); + + /** + * 篆絖莎茣絅莎絎≧壕 + * @param salaryApprovalDTO + */ + void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO); + + List listSalaryApprovalItem(SalaryItemSearchParam queryParam); + + SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId); + + /** + * キ莚ユ悟莅医篁ョ莨悟 + * @param salaryAcctRecordPO + * @return + */ + boolean getRecordIsCanEdit(SalaryAcctRecordPO salaryAcctRecordPO); + + /** + * 篆絖絎≧号腮id + * @param saveParam + */ + void saveApprovalRequestId(ApprovalRequestSaveParam saveParam); + + void deleteBySalarySobIds(Collection ids); + + List listBySalarySobIds(Collection salarySobIds); +} diff --git a/src/com/engine/salary/service/SalaryArchiveItemService.java b/src/com/engine/salary/service/SalaryArchiveItemService.java index 9d9081bd8..6e22d49ba 100644 --- a/src/com/engine/salary/service/SalaryArchiveItemService.java +++ b/src/com/engine/salary/service/SalaryArchiveItemService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam; @@ -163,4 +164,13 @@ public interface SalaryArchiveItemService { ArchiveFieldConfig getConfig(); UploadConfigResponse.Result parseConfig(ArchiveFieldConfig config); + + /** + * 号莎罅fidユ頑キ井 + * + * @param salaryArchiveIds + * @param dateRange + * @return + */ + List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange); } diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index dbab79c4d..fa5f766e7 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -212,4 +213,6 @@ public interface SalaryEmployeeService { * @return */ JobCallInfo getJobCallInfoById(Long jobCallId); + + List snapshot(List employeeIds, Date snapshotTime); } diff --git a/src/com/engine/salary/service/SalarySobRangeService.java b/src/com/engine/salary/service/SalarySobRangeService.java index 3bfb8172a..bf1f2848e 100644 --- a/src/com/engine/salary/service/SalarySobRangeService.java +++ b/src/com/engine/salary/service/SalarySobRangeService.java @@ -62,6 +62,7 @@ public interface SalarySobRangeService { * @param saveParam 篆絖 */ void save(SalarySobRangeSaveParam saveParam); + void edit(SalarySobRangeSaveParam param); /** * 号筝脂idよ莎茣絅篋阪 diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java new file mode 100644 index 000000000..a859a3393 --- /dev/null +++ b/src/com/engine/salary/service/SettingService.java @@ -0,0 +1,59 @@ +package com.engine.salary.service; + +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.util.page.PageInfo; + +import java.util.List; + +public interface SettingService { + + @Deprecated + void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); + + /** + * キ丞ず絎狗臀 + * @param param + * @return + */ + PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param); + + @Deprecated + void resetPageListSetting(PageListSettingResetParam param); + + /** + * キ絎罔≧翠臀絎蕁級∫莅ら臀 + * @param param + * @return + */ + PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param); + + /** + * キ罔≧水茵 + * @param queryParam + * @return + */ + List getPageListTemplates(PageListTemplateQueryParam queryParam); + + /** + * 篆絖罔≧ + * @param param + * @return + */ + PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param); + + /** + * 贋∽─ + * @param param + */ + void changePageListTemplate(PageListTemplateChangeParam param); + + List getPageListColumns(String page); + + PageInfo getTemplates(PageListTemplateQueryParam param); + + void deletePageListTemplate(PageListTemplateDeleteParam param); +} diff --git a/src/com/engine/salary/service/TaxAgentManageRangeService.java b/src/com/engine/salary/service/TaxAgentManageRangeService.java index 00cc7eb76..0de8a4562 100644 --- a/src/com/engine/salary/service/TaxAgentManageRangeService.java +++ b/src/com/engine/salary/service/TaxAgentManageRangeService.java @@ -52,7 +52,7 @@ public interface TaxAgentManageRangeService { * @param saveParam 篆絖 */ void save(TaxAgentRangeSaveParam saveParam); - + void edit(TaxAgentRangeSaveParam param); /** * 号筝脂idょ∞ diff --git a/src/com/engine/salary/service/TaxDeclarationApiConfigService.java b/src/com/engine/salary/service/TaxDeclarationApiConfigService.java index c43db36c9..c239d6339 100644 --- a/src/com/engine/salary/service/TaxDeclarationApiConfigService.java +++ b/src/com/engine/salary/service/TaxDeclarationApiConfigService.java @@ -43,4 +43,10 @@ public interface TaxDeclarationApiConfigService { void enableConfig(TaxDeclarationBillingConfigSaveParam saveParam); void saveConfig(TaxDeclarationBillingConfigSaveParam saveParam); + + /** + * 綣肴順 + * @return + */ + boolean enableUse(); } diff --git a/src/com/engine/salary/service/VariableArchiveItemService.java b/src/com/engine/salary/service/VariableArchiveItemService.java new file mode 100644 index 000000000..e5dd8644a --- /dev/null +++ b/src/com/engine/salary/service/VariableArchiveItemService.java @@ -0,0 +1,36 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableArchiveItemService + * @date 2024/08/07 9:29 + * @description 羌莎罅f膸 + */ +public interface VariableArchiveItemService { + + List listAll(); + /** + * 号羌莎罅fidキ + * + * @param variableArchiveIds + * @return + */ + List listByVariableArchiveIds(List variableArchiveIds); + + /** + * ヨ∽貴罅f筝綏俄戎羌莎蕁合 + * + * @return + */ + List listUsingItems(); + + int batchInsert(List variableArchiveItemList); + + void deleteByIds(List variableArchiveItemIds); + + void deleteByArchiveIds(List variableArchiveIds); +} diff --git a/src/com/engine/salary/service/VariableArchiveService.java b/src/com/engine/salary/service/VariableArchiveService.java new file mode 100644 index 000000000..280a4064d --- /dev/null +++ b/src/com/engine/salary/service/VariableArchiveService.java @@ -0,0 +1,75 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.datacollection.dto.VariableArchiveListDTO; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandleParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveQueryParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveSaveParam; +import com.engine.salary.util.excel.ExcelPreviewDTO; +import com.engine.salary.util.page.PageInfo; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.time.YearMonth; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 井-羌 + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +public interface VariableArchiveService { + + /** + * ヨ∽貴罅f鐚蕁居 + * + * @param queryParam + * @return + */ + PageInfo listPage(VariableArchiveQueryParam queryParam); + + List list(VariableArchiveQueryParam queryParam); + + /** + * 綮堺貴莎罅f井 + * + * @param variableArchives + * @return + */ + List> buildVariableArchiveData(List variableArchives); + + /** + * 綮堺貴罅f + * + * @param saveParam + */ + void createData(VariableArchiveSaveParam saveParam); + + /** + * 羌莎罅f膸 + * + * @param queryParam + * @return + */ + Map getDetail(VariableArchiveQueryParam queryParam); + + List getCreateForm(); + + XSSFWorkbook downloadTemplate(VariableArchiveQueryParam param); + + ExcelPreviewDTO preview(VariableArchiveImportHandleParam importParam); + + Map importData(VariableArchiveImportHandleParam importParam); + + XSSFWorkbook export(VariableArchiveQueryParam param); + + void deleteSelectVariableArchive(Collection deleteIds); + + List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId); + + void updateData(VariableArchiveSaveParam updateParam); +} diff --git a/src/com/engine/salary/service/VariableItemService.java b/src/com/engine/salary/service/VariableItemService.java new file mode 100644 index 000000000..ef2dade37 --- /dev/null +++ b/src/com/engine/salary/service/VariableItemService.java @@ -0,0 +1,66 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableItemQueryParam; +import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; +import com.engine.salary.entity.datacollection.po.VariableItemPO; +import com.engine.salary.util.page.PageInfo; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableItemService + * @date 2024/08/07 9:30 + * @description 羌蕁合 + */ +public interface VariableItemService { + + VariableItemPO getById(Long id); + + List listByIds(List ids); + + /** + * キ羌蕁合 + * + * @return + */ + List listAll(); + + /** + * キ羌莎蕁合茵鐚蕁居 + * + * @param queryParam + * @return + */ + PageInfo listPage(VariableItemQueryParam queryParam); + + /** + * 医産羌蕁合 + * + * @param saveParam + */ + Integer save(VariableItemSaveParam saveParam); + + /** + * 贋井貴蕁合 + * + * @param saveParam + */ + VariableItemPO update(VariableItemSaveParam saveParam); + + /** + * ゆ貴莎蕁合 + * + * @param itemIds + */ + void deleteItems(List itemIds); + + /** + * 羌蕁合莚膸篆≧ + * + * @param id + * @return + */ + VariableItemListDTO getDetail(Long id); +} diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 785939385..1f8efff29 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -1368,7 +1368,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // キ茖膠 AddUpDeductionOnlineRequestWrapper requestWrapper = getAddUpDeductionOnlineRequestWrapper(null, apiConfig); // キョ篆≧ - List taxReturnPOList = getTaxAgentTaxReturnService(user).getByTaxAgentIds(requestWrapper.getTaxAgentMap().keySet()); + List taxReturnPOList = getTaxAgentTaxReturnService(user).getByTaxAgentIds(param.getTaxAgentIds()); List failReturnPOList = taxReturnPOList.stream().filter(e -> !TaxAgentTaxReturnStatusEnum.SUCCESS.getValue().equals(e.getCheckStatus())).collect(Collectors.toList()); SalaryAssert.isFalse(taxReturnPOList.size() == failReturnPOList.size(), SalaryI18nUtil.getI18nLabel(183781, "篌筝菴薨莚鐚倶羈キ膣莅>蕁拷iゆ井鐚莚桁筝腮g軸箙>査薨莚篌筝ョ篆≧")); Map result = new HashMap<>(1); @@ -1680,7 +1680,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction String msg = Optional.ofNullable(response).map(QuerySpecialAmountFeedbackResponse::getHead).map(SzyhResponseHead::getMsg).orElse(null); if (SzyhApiConstant.HANDLING_CODE.equals(responseCode)||SzyhApiConstant.TASK_HANDLING_CODE.equals(responseCode)) { // 絋・d紊筝鐚膸х鮫莉莚 - return AddUpDeductionRequestResultDTO.builder().finish(false).build(); + return AddUpDeductionRequestResultDTO.builder().finish(false).msg(msg).build(); } // キ菴篋阪篆≧茵 if (!SzyhApiConstant.SUCCESS_CODE.equals(responseCode)) { diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index ac5628f3a..2bce4fca5 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -284,9 +284,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation AddUpSituationBiz biz = new AddUpSituationBiz(); List addUpSituations = biz.listSome(AddUpSituation.builder().taxAgentId(taxAgentId).taxYearMonth(taxCycle).build()); - Set addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId); + List addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId, Collectors.toList()); if (CollectionUtils.isNotEmpty(addUpSituationIds)) { - getAddUpSituationMapper().deleteByIds(addUpSituationIds); + List> partition = Lists.partition(addUpSituationIds, 100); + partition.forEach(getAddUpSituationMapper()::deleteByIds); } return Boolean.TRUE; diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index 1771b6c09..48648cc57 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -70,6 +70,7 @@ import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.file.ImageFileManager; import weaver.general.BaseBean; +import weaver.general.Util; import weaver.hrm.User; import weaver.wechat.util.Utils; @@ -131,7 +132,6 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa } - private RemoteAttend4SalaryService getRemoteAttend4SalaryService(User user) { return ServiceUtil.getService(RemoteAttend4SalaryServiceImpl.class, user); } @@ -250,6 +250,16 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa // キ膸膸 List> listMaps = getListMaps(attendQuoteDataBases); + + //綵綣 + List effectiveColumns = listMaps.stream() + .map(Map::keySet) + .max(Comparator.comparingInt(Set::size)) + .orElse(new HashSet<>()) + .stream() + .map(key -> key.split("_")[0]) + .collect(Collectors.toList()); + // 1.綏ヤ膂水腱 String sheetName = SalaryI18nUtil.getI18nLabel(93931, "ゆ井"); List header = new ArrayList<>(); @@ -258,10 +268,16 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa header.add(SalaryI18nUtil.getI18nLabel(86186, "阪")); header.add(SalaryI18nUtil.getI18nLabel(86317, "綏ュ")); // + List effectiveFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(listMaps)) { - for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { - header.add(attendQuoteField.getFieldName()); - } + effectiveFields = attendQuoteFields.stream() + .filter(attendQuoteField -> effectiveColumns.contains(Util.null2String(attendQuoteField.getId()))) + .collect(Collectors.toList()); + + effectiveFields.forEach(attendQuoteField -> { + header.add(attendQuoteField.getFieldName()); + } + ); } List> rows = new ArrayList<>(); @@ -276,7 +292,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa row.add(dto.get("jobNum")); // - for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { + for (AttendQuoteFieldPO attendQuoteField : effectiveFields) { Object o = dto.get(attendQuoteField.getId().toString() + "_attendQuoteData"); try { if (o != null && NumberUtil.isNumber(o.toString())) { @@ -366,7 +382,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); // 莉∽莎悟篋阪po - Date salaryDate = SalaryDateUtil.dateStrToLocalTime(salaryYearMonth + "-01"); + Date salaryDate = SalaryDateUtil.dateStrToLocalDate(salaryYearMonth + "-01"); List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID()); //菴羯ゆ筝絮篋綵茣絅g軸箙>査篋阪 @@ -509,13 +525,17 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa attend4Salary.setBeginDate(attendCycleRange.getFromDate()); attend4Salary.setEndDate(attendCycleRange.getEndDate()); attend4Salary.setOnlyEmpIds(part); + //罨>拭 + String attendanceSerial = attendQuoteFields.stream() + .filter(f -> f.getCode() != null && f.getCode().startsWith("attendanceSerial_")) + .map(f -> f.getCode().replace("attendanceSerial_", "")) + .collect(Collectors.joining(",")); + attend4Salary.setAttendanceSerial(attendanceSerial); + List> attendResult = getRemoteAttend4SalaryService(user).getDatas(attend4Salary); AttendQuoteDataBO.buildAttendDataFromRemote(attendResult, attendQuoteFields, attendQuoteSyncData); -// attend4Salary.setUnit("day"); -// attendResult = remoteAttend4SalaryService.getWorkTimeSummary(attend4Salary); -// log.info("ゆ井[紊]:{}", JSONUtils.toJSONString(attendResult.getData())); -// AttendQuoteDataBO.buildAttendDataFromRemote("day", attendResult.getData(), attendQuoteFields, attendQuoteSyncData); + } } catch (Exception e) { log.error("salaryAttendキゆ井莚紊沿乾:{}", String.format(":%s,莚篆≧:%s", JSONObject.toJSONString(attend4Salary), e.getMessage()), e); @@ -663,7 +683,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; // キ腱隙篋阪 - List employees = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); + List employees = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); // キ綏画丞舟罩ョゅ罧 List attendQuoteFields = getAttendQuoteSetFields(AttendQuoteSourceTypeEnum.IMPORT); // キゅ diff --git a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java index 2b76af128..07c5ae633 100644 --- a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java +++ b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java @@ -9,9 +9,11 @@ import com.engine.salary.enums.salaryformula.ReferenceTypeEnum; import com.engine.salary.formlua.core.QlExpress; import com.engine.salary.formlua.entity.parameter.DataType; import com.engine.salary.formlua.entity.standard.ExcelResult; +import com.engine.salary.mapper.SQLMapper; import com.engine.salary.service.FormulaRunService; import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.MapperProxyFactory; import com.ql.util.express.DefaultContext; import com.ql.util.express.ExpressRunner; import lombok.extern.slf4j.Slf4j; @@ -41,6 +43,9 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService QlExpress express = new QlExpress(); + private SQLMapper getSQLMapper(){ + return MapperProxyFactory.getProxy(SQLMapper.class); + } @Override public ExcelResult run(ExpressFormula expressFormula, List formulaVars, DataCollectionEmployee simpleEmployee) { @@ -123,6 +128,12 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService } } } else { + +// List list = getSQLMapper().runSQL(sql); +// if(CollectionUtil.isNotEmpty(list)){ +// result = Util.null2String(list.get(0).get(sqlReturnKey)); +// } + RecordSet rs = new RecordSet(); if (rs.execute(sql)) { if (rs.next()) { diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 8347f1045..8d838f3ed 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -12,17 +12,18 @@ import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.datacollection.dto.OtherDeductionListDTO; -import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; +import com.engine.salary.entity.datacollection.dto.*; import com.engine.salary.entity.datacollection.param.*; -import com.engine.salary.entity.datacollection.po.OtherDeductionPO; +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.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.exception.SalaryRunTimeException; -import com.engine.salary.mapper.datacollection.OtherDeductionMapper; +import com.engine.salary.mapper.datacollection.*; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.OtherDeductionService; @@ -35,6 +36,7 @@ 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.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelComment; import com.engine.salary.util.excel.ExcelParseHelper; @@ -42,6 +44,7 @@ import com.engine.salary.util.excel.ExcelSupport; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +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; @@ -50,6 +53,7 @@ import org.apache.commons.lang3.Validate; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.BeanUtils; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; @@ -96,6 +100,37 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + + private FreeIncomeMapper getFreeIncomeMapper() { + return MapperProxyFactory.getProxy(FreeIncomeMapper.class); + } + + private HealthInsuranceMapper getHealthInsuranceMapper() { + return MapperProxyFactory.getProxy(HealthInsuranceMapper.class); + } + + private EndowmentInsuranceMapper getEndowmentInsuranceMapper() { + return MapperProxyFactory.getProxy(EndowmentInsuranceMapper.class); + } + + private GrantDonationMapper getGrantDonationMapper() { + return MapperProxyFactory.getProxy(GrantDonationMapper.class); + } + + private DerateDeductionMapper getDerateDeductionMapper() { + return MapperProxyFactory.getProxy(DerateDeductionMapper.class); + } + + + private OtherDerateDeductionMapper getOtherDerateDeductionMapper() { + return MapperProxyFactory.getProxy(OtherDerateDeductionMapper.class); + } + + private PersonalPensionMapper getPersonalPensionMapper() { + return MapperProxyFactory.getProxy(PersonalPensionMapper.class); + } + + @Override public OtherDeductionPO getById(Long id) { return getOtherDeductionMapper().getById(id); @@ -200,13 +235,11 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction Validate.notBlank(imageId, "imageId筝榊"); //腮罨丈絮 String declareMonthStr = Util.null2String(importParam.getDeclareMonth()); - //筝腮g軸箙>査 - String taxAgentId = Util.null2String(importParam.getTaxAgentId()); InputStream fileInputStream = null; try { fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); - List OtherDeductions = ExcelParseHelper.parse2Map(fileInputStream, OtherDeductionListDTO.class, 0, 1, 12, "OtherDeductionTemplate.xlsx"); + List OtherDeductions = ExcelParseHelper.parse2Map(fileInputStream, OtherDeductionListDTO.class, 0, 1, 14, "OtherDeductionTemplate.xlsx"); int total = OtherDeductions.size(); int index = 0; @@ -257,7 +290,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction List employeeSameIds = new ArrayList<>(); //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ - List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo,null); + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); //胼肢鐚井 if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { employeeSameIds = emps.stream() @@ -308,16 +341,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } else { Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) { - //筝腮g軸箙>査筝絲弱ユ狗筝筝 - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絲弱ユ狗筝筝"); - errorData.add(errorMessageMap); - errorSum += 1; - } else { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); - } + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + taxAgentEmployees = optionalTemp.get().getEmployeeList(); } else { //筝腮g軸箙>査筝絖 Map errorMessageMap = Maps.newHashMap(); @@ -327,6 +352,12 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } } + //腮九 + String freeIncome = dto.getFreeIncome(); + po.setFreeIncome(freeIncome); + //腮蘂 + String derateDeduction = dto.getDerateDeduction(); + po.setDerateDeduction(derateDeduction); //筝ュ嵯篆 String businessHealthyInsurance = dto.getBusinessHealthyInsurance(); po.setBusinessHealthyInsurance(businessHealthyInsurance); @@ -381,6 +412,1158 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return apidatas; } + @Override + public Map importDetailData(OtherDeductionImportParam importParam) { + + long currentEmployeeId = user.getUID(); + Map apidatas = new HashMap(); + OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); + + //ヨ√剛篋阪篆≧絲弱ョ絮臀 + SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); + String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; + + //罍薨 + checkImportParam(importParam); + + //excel篁id + String imageId = Util.null2String(importParam.getImageId()); + Validate.notBlank(imageId, "imageId筝榊"); + //腮罨丈絮 + String declareMonthStr = Util.null2String(importParam.getDeclareMonth()); + + //篋阪篆≧ + List employees = getSalaryEmployeeService(user).listEmployee(); + // キ筝腮g軸箙>査 + Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + //腮罨丈絮 + Date declareMonth = SalaryDateUtil.stringToDate(declareMonthStr + "-01"); + // キ綏牙悟井 + List salaryAcctEmployees = getAddUpDeductionService(user).getAccountedEmployeeData(declareMonthStr); + // ヨ√群井 + List list = getOtherDeductionMapper().listSome(OtherDeductionPO.builder().declareMonth(declareMonth).build()); + + InputStream fileInputStream = null; + + List eligibleData = new ArrayList<>(); + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + //腮九 + List freeIncomeList = ExcelParseHelper.parse2Map(fileInputStream, FreeIncomeListDTO.class, 0, 1, 9, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < freeIncomeList.size(); i++) { + FreeIncomeListDTO dto = freeIncomeList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO po = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + FreeIncomePO freeIncomePO = FreeIncomePO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + po.setEmployeeId(employeeId); + freeIncomePO.setEmployeeId(employeeId); + freeIncomePO.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + freeIncomePO.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + //腮九 + String freeIncome = dto.getFreeItem(); + String freeProperty = dto.getFreeProperty(); + String freeAmount = dto.getFreeAmount(); + freeIncomePO.setFreeItem(freeIncome); + freeIncomePO.setFreeProperty(freeProperty); + freeIncomePO.setFreeAmount(freeAmount); + + + if (errorSum == 0) { + successCount += 1; + String key = po.getTaxAgentId() + "-" + po.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getFreeIncomeList().add(freeIncomePO); + } else { + po.getFreeIncomeList().add(freeIncomePO); + eligibleData.add(po); + } + + } else { + errorCount += 1; + // 羞糸莚井 + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("freeIncome", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List dtoList = ExcelParseHelper.parse2Map(fileInputStream, HealthInsuranceListDTO.class, 1, 1, 11, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < dtoList.size(); i++) { + HealthInsuranceListDTO dto = dtoList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + HealthInsurancePO po = HealthInsurancePO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setIdentificationNumber(dto.getIdentificationNumber()); + po.setEffectiveDate(dto.getEffectiveDate()); + po.setYearPremium(dto.getYearPremium()); + po.setMonthPremium(dto.getMonthPremium()); + po.setCurrentDeduction(dto.getCurrentDeduction()); + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getHealthInsuranceList().add(po); + } else { + mainPo.getHealthInsuranceList().add(po); + eligibleData.add(mainPo); + } + + } else { + errorCount += 1; + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List derateDeductionList = ExcelParseHelper.parse2Map(fileInputStream, EndowmentInsuranceListDTO.class, 2, 1, 12, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < derateDeductionList.size(); i++) { + EndowmentInsuranceListDTO dto = derateDeductionList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + EndowmentInsurancePO po = EndowmentInsurancePO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setAccountNumber(dto.getAccountNumber()); + po.setCheckCode(dto.getCheckCode()); + po.setYearPremium(dto.getYearPremium()); + po.setMonthPremium(dto.getMonthPremium()); + po.setCurrentDeduction(dto.getCurrentDeduction()); + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getEndowmentInsuranceList().add(po); + } else { + mainPo.getEndowmentInsuranceList().add(po); + eligibleData.add(mainPo); + } + + } else { + errorCount += 1; + // 羞糸莚井 + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List dtoList = ExcelParseHelper.parse2Map(fileInputStream, GrantDonationListDTO.class, 3, 1, 13, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < dtoList.size(); i++) { + GrantDonationListDTO dto = dtoList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + GrantDonationPO po = GrantDonationPO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setRecipientName(dto.getRecipientName()); + po.setTaxCode(dto.getTaxCode()); + po.setDonationNumber(dto.getDonationNumber()); + po.setDonateDate(dto.getDonateDate()); + po.setDonateAmount(dto.getDonateAmount()); + po.setDeductionProportion(dto.getDeductionProportion()); + po.setActualDeduction(dto.getActualDeduction()); + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getGrantDonationList().add(po); + } else { + mainPo.getGrantDonationList().add(po); + eligibleData.add(mainPo); + } + + } else { + errorCount += 1; + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List derateDeductionList = ExcelParseHelper.parse2Map(fileInputStream, DerateDeductionListDTO.class, 4, 1, 9, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < derateDeductionList.size(); i++) { + DerateDeductionListDTO dto = derateDeductionList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + DerateDeductionPO po = DerateDeductionPO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setDerateAmount(dto.getDerateAmount()); + po.setDerateItem(dto.getDerateItem()); + po.setDerateProperty(dto.getDerateProperty()); + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getDerateDeductionList().add(po); + } else { + mainPo.getDerateDeductionList().add(po); + eligibleData.add(mainPo); + } + + } else { + errorCount += 1; + // 羞糸莚井 + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List dtoList = ExcelParseHelper.parse2Map(fileInputStream, OtherDerateDeductionListDTO.class, 5, 1, 8, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < dtoList.size(); i++) { + OtherDerateDeductionListDTO dto = dtoList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + OtherDerateDeductionPO po = OtherDerateDeductionPO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setOtherDeduction(dto.getOtherDeduction()); + po.setRemark(dto.getRemark()); + + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getOtherDerateDeductionList().add(po); + } else { + mainPo.getOtherDerateDeductionList().add(po); + eligibleData.add(mainPo); + } + + } else { + errorCount += 1; + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + + int successCount = 0; + int errorCount = 0; + + // 莚excel絎 + List errorData = new ArrayList<>(); + + List dtoList = ExcelParseHelper.parse2Map(fileInputStream, PersonalPensionListDTO.class, 6, 1, 9, "OtherDeductionTemplate.xlsx"); + for (int i = 0; i < dtoList.size(); i++) { + PersonalPensionListDTO dto = dtoList.get(i); + + Date now = new Date(); + //緇ユ井綺絲壕院 + OtherDeductionPO mainPo = OtherDeductionPO.builder() + .declareMonth(declareMonth) + .freeIncomeList(new ArrayList<>()) + .derateDeductionList(new ArrayList<>()) + .endowmentInsuranceList(new ArrayList<>()) + .grantDonationList(new ArrayList<>()) + .healthInsuranceList(new ArrayList<>()) + .otherDerateDeductionList(new ArrayList<>()) + .personalPensionList(new ArrayList<>()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + PersonalPensionPO po = PersonalPensionPO.builder() + .taxYearMonth(declareMonth) + .fileStatus(1) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + + //綣絽悟号育 + int errorSum = 0; + + //茵 + String rowIndex = String.format("膃%s茵", i + 2); + + //後紮 + String userName = dto.getUsername(); + String deparmentName = dto.getDepartmentName(); + String mobile = dto.getMobile(); + String workcode = dto.getJobNum(); + String idNo = dto.getIdNo(); + List employeeSameIds = new ArrayList<>(); + + //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); + //胼肢鐚井 + if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { + employeeSameIds = emps.stream() + .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) { + employeeSameIds = emps.stream() + .map(DataCollectionEmployee::getEmployeeId) + .collect(Collectors.toList()); + } + + //綵篋阪篆≧絲弱ョ絮臀筝"0"駈紮綽紂蕁 + if (StringUtils.isBlank(userName) && "0".equals(confValue)) { + //紮 筝巡減腥 + //莚羔絲壕院 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "綏ヤ拭筝絖絖紊筝綏"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 ? employeeSameIds.get(0) : null; + if (employeeId != null && employeeId > 0) { + mainPo.setEmployeeId(employeeId); + po.setEmployeeId(employeeId); + po.setEmployeeType(DataCollectionEmployeeTypeEnum.ORGANIZATION.getValue()); + } else { + //紮莚鐚膤紫筝絖莚ュ + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "紮莚鐚膤紫筝絖莚ュ"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + + String taxAgentName = dto.getTaxAgentName(); + if (StringUtils.isBlank(taxAgentName)) { + //筝腮g軸箙>査筝巡減腥 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝巡減腥"); + errorData.add(errorMessageMap); + errorSum += 1; + } else { + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + if (optionalTemp.isPresent()) { + mainPo.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + } else { + //筝腮g軸箙>査筝絖 + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + "筝腮g軸箙>査筝絖筝翫"); + errorData.add(errorMessageMap); + errorSum += 1; + } + } + + po.setVoucherTypeName(dto.getVoucherTypeName()); + po.setVoucherNo(dto.getVoucherNo()); + po.setPayAmount(dto.getPayAmount()); + + + if (errorSum == 0) { + successCount += 1; + String key = mainPo.getTaxAgentId() + "-" + mainPo.getEmployeeId(); + Map deductionPOMap = SalaryEntityUtil.convert2Map(eligibleData, e -> e.getTaxAgentId() + "-" + e.getEmployeeId()); + if (deductionPOMap.containsKey(key)) { + deductionPOMap.get(key).getPersonalPensionList().add(po); + } else { + mainPo.getPersonalPensionList().add(po); + eligibleData.add(mainPo); + } + } else { + errorCount += 1; + } + } + + HashMap dataMap = new HashMap<>(); + dataMap.put("successCount", successCount); + dataMap.put("errorCount", errorCount); + dataMap.put("errorData", errorData); + apidatas.put("derateDeduction", dataMap); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + + eligibleData.forEach(po -> { + //茵莉筝阪ф井 + po.handleList(); + + //羝ゆф井 + OtherDeductionPO otherDeductionPO = getOtherDeductionMapper().getByTaxAgentIdAndEmployeeId(po.getTaxAgentId(), po.getEmployeeId()); + if (otherDeductionPO != null) { + getOtherDeductionMapper().delete(otherDeductionPO); + getFreeIncomeMapper().deleteByMainId(otherDeductionPO.getId()); + getHealthInsuranceMapper().deleteByMainId(otherDeductionPO.getId()); + getEndowmentInsuranceMapper().deleteByMainId(otherDeductionPO.getId()); + getGrantDonationMapper().deleteByMainId(otherDeductionPO.getId()); + getDerateDeductionMapper().deleteByMainId(otherDeductionPO.getId()); + getOtherDerateDeductionMapper().deleteByMainId(otherDeductionPO.getId()); + getPersonalPensionMapper().deleteByMainId(otherDeductionPO.getId()); + } + + //贋遺源茵 + getOtherDeductionMapper().insertIgnoreNull(po); + + //贋医蕁号膸 + po.getFreeIncomeList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getFreeIncomeMapper().insertIgnoreNull(l); + }); + po.getHealthInsuranceList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getHealthInsuranceMapper().insertIgnoreNull(l); + }); + po.getEndowmentInsuranceList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getEndowmentInsuranceMapper().insertIgnoreNull(l); + }); + po.getGrantDonationList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getGrantDonationMapper().insertIgnoreNull(l); + }); + po.getDerateDeductionList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getDerateDeductionMapper().insertIgnoreNull(l); + }); + po.getOtherDerateDeductionList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getOtherDerateDeductionMapper().insertIgnoreNull(l); + }); + po.getPersonalPensionList().forEach(l -> { + l.setId(IdGenerator.generate()); + l.setMainId(po.getId()); + getPersonalPensionMapper().insertIgnoreNull(l); + }); + }); + + return apidatas; + } + /** * 紊絲弱ユ井 * @@ -458,8 +1641,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction String imageId = Util.null2String(importParam.getImageId()); //腮罨丈絮 String declareMonthStr = Util.null2String(importParam.getDeclareMonth()); - //筝腮g軸箙>査 - String taxAgentId = Util.null2String(importParam.getTaxAgentId()); if (StringUtils.isBlank(imageId)) { throw new SalaryRunTimeException("篁銀絖"); @@ -504,7 +1685,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction private List> getExcelRowList(OtherDeductionQueryParam param, boolean hasData) { long employeeId = user.getUID(); //excel蘂 - List title = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "ヨユ", "筝ュ嵯篆", "腮綮九肢篆", "銀", "篋iょ莎蘂", "筝篋阪肢"); + List title = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "ヨユ", "腮九", "筝ュ嵯篆", "腮綮九肢篆", "篋iょ莎蘂", "腮蘂", "銀", "筝篋阪肢"); List> rowList = new ArrayList<>(); rowList.add(title); @@ -536,6 +1717,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction cellList.add(Util.null2String(dto.getJobNum())); cellList.add(Util.null2String(dto.getIdNo())); cellList.add(Util.null2String(dto.getHiredate())); + cellList.add(NumberUtil.isNumber(dto.getFreeIncome()) ? new BigDecimal(dto.getFreeIncome()) : Util.null2String(dto.getFreeIncome())); + cellList.add(NumberUtil.isNumber(dto.getDerateDeduction()) ? new BigDecimal(dto.getDerateDeduction()) : Util.null2String(dto.getDerateDeduction())); cellList.add(NumberUtil.isNumber(dto.getBusinessHealthyInsurance()) ? new BigDecimal(dto.getBusinessHealthyInsurance()) : Util.null2String(dto.getBusinessHealthyInsurance())); cellList.add(NumberUtil.isNumber(dto.getTaxDelayEndowmentInsurance()) ? new BigDecimal(dto.getTaxDelayEndowmentInsurance()) : Util.null2String(dto.getTaxDelayEndowmentInsurance())); cellList.add(NumberUtil.isNumber(dto.getOtherDeduction()) ? new BigDecimal(dto.getOtherDeduction()) : Util.null2String(dto.getOtherDeduction())); @@ -603,7 +1786,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction */ private List> getExcelRowDetailList(OtherDeductionQueryParam param) { //excel蘂 - List title = Arrays.asList("紮", "恰ユ篁", "筝腮g軸箙>査", "", "阪", "綏ュ", "筝ュ嵯篆", "腮綮九肢篆", "銀", "篋iょ莎蘂", "筝篋阪肢"); + List title = Arrays.asList("紮", "恰ユ篁", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "ヨユ", "腮九", "筝ュ嵯篆", "腮綮九肢篆", "篋iょ莎蘂", "腮蘂", "銀", "筝篋阪肢"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); //ヨ∵膸篆≧ @@ -619,6 +1802,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction cellList.add(Util.null2String(dto.getDepartmentName())); cellList.add(Util.null2String(dto.getMobile())); cellList.add(Util.null2String(dto.getJobNum())); + cellList.add(NumberUtil.isNumber(dto.getFreeIncome()) ? new BigDecimal(dto.getFreeIncome()) : Util.null2String(dto.getFreeIncome())); + cellList.add(NumberUtil.isNumber(dto.getDerateDeduction()) ? new BigDecimal(dto.getDerateDeduction()) : Util.null2String(dto.getDerateDeduction())); cellList.add(NumberUtil.isNumber(dto.getBusinessHealthyInsurance()) ? new BigDecimal(dto.getBusinessHealthyInsurance()) : Util.null2String(dto.getBusinessHealthyInsurance())); cellList.add(NumberUtil.isNumber(dto.getTaxDelayEndowmentInsurance()) ? new BigDecimal(dto.getTaxDelayEndowmentInsurance()) : Util.null2String(dto.getTaxDelayEndowmentInsurance())); cellList.add(NumberUtil.isNumber(dto.getOtherDeduction()) ? new BigDecimal(dto.getOtherDeduction()) : Util.null2String(dto.getOtherDeduction())); @@ -674,6 +1859,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction ArrayList updateList = new ArrayList<>(); OtherDeductionPO build = OtherDeductionPO.builder() .id(otherDeductionParam.getId()) + .freeIncome(otherDeductionParam.getFreeIncome()) + .derateDeduction(otherDeductionParam.getDerateDeduction()) .businessHealthyInsurance(otherDeductionParam.getBusinessHealthyInsurance()) .taxDelayEndowmentInsurance(otherDeductionParam.getTaxDelayEndowmentInsurance()) .otherDeduction(otherDeductionParam.getOtherDeduction()) @@ -753,7 +1940,12 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction throw new SalaryRunTimeException("筝腮g軸箙>査筝絖筝翫"); } } - + //腮九 + String freeIncome = otherDeductionParam.getFreeIncome(); + po.setFreeIncome(freeIncome); + //腮蘂 + String derateDeduction = otherDeductionParam.getDerateDeduction(); + po.setDerateDeduction(derateDeduction); //筝ュ嵯篆 String businessHealthyInsurance = otherDeductionParam.getBusinessHealthyInsurance(); po.setBusinessHealthyInsurance(businessHealthyInsurance); @@ -1027,4 +2219,657 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return book; } + @Override + public XSSFWorkbook downloadDetailTemplate(OtherDeductionQueryParam param) { + + + Map>> map = new LinkedHashMap<>(); + + List freeIncomeTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "腮篋蕁", "腮ц寒", "腮蘂"); + map.put("腮九", Arrays.asList(freeIncomeTitle)); + List healthInsuranceTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "腮篌莚", "篆ユ", "綛翫墾篆茣", "綺篆茣", "iら蘂"); + map.put("筝ュ嵯篆", Arrays.asList(healthInsuranceTitle)); + List endowmentInsuranceTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "腮綮九肢茣欠", "ョ♂", "綛翫墾篆茣", "綺篆茣", "iら蘂"); + map.put("腮綮九肢篆", Arrays.asList(endowmentInsuranceTitle)); + List grantDonationTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "莎篏腱", "莎篏膾括篋肴", "莚", "莎ユ", "莎蘂", "iゆ箴", "絎iら蘂"); + map.put("篋iょ莎蘂", Arrays.asList(grantDonationTitle)); + List derateDeductionTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "篋蕁", "ц寒", "蘂"); + map.put("腮蘂", Arrays.asList(derateDeductionTitle)); + List otherDerateDeductionTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "銀腮iら蘂", "紊羈"); + map.put("銀", Arrays.asList(otherDerateDeductionTitle)); + List personalPensionTitle = Arrays.asList("紮", "筝腮g軸箙>査", "", "阪", "綏ュ", "莚篁九埇", "莚膠糸", "莚膽", "膽頑換蘂"); + map.put("筝篋阪肢", Arrays.asList(personalPensionTitle)); + + + XSSFWorkbook book = ExcelUtil.genWorkbookV2(map); + return book; + } + + @Override + public PageInfo freeIncomeList(OtherDeductionDetailQueryParam param) { + + FreeIncomePO build; + if (param.getId() != null) { + build = FreeIncomePO.builder().mainId(param.getId()).build(); + } else { + build = FreeIncomePO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + List pos = getFreeIncomeMapper().listSome(build); + + List empIds = SalaryEntityUtil.properties(pos, FreeIncomePO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + FreeIncomeListDTO dto = new FreeIncomeListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, FreeIncomeListDTO.class); + } + + @Override + public PageInfo derateDeductionList(OtherDeductionDetailQueryParam param) { + DerateDeductionPO build; + if (param.getId() != null) { + build = DerateDeductionPO.builder().mainId(param.getId()).build(); + } else { + build = DerateDeductionPO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getDerateDeductionMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, DerateDeductionPO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + DerateDeductionListDTO dto = new DerateDeductionListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, DerateDeductionListDTO.class); + } + + @Override + public PageInfo endowmentInsuranceList(OtherDeductionDetailQueryParam param) { + EndowmentInsurancePO build; + if (param.getId() != null) { + build = EndowmentInsurancePO.builder().mainId(param.getId()).build(); + } else { + build = EndowmentInsurancePO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getEndowmentInsuranceMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, EndowmentInsurancePO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + EndowmentInsuranceListDTO dto = new EndowmentInsuranceListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, EndowmentInsuranceListDTO.class); + } + + @Override + public PageInfo grantDonationList(OtherDeductionDetailQueryParam param) { + GrantDonationPO build; + if (param.getId() != null) { + build = GrantDonationPO.builder().mainId(param.getId()).build(); + } else { + build = GrantDonationPO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getGrantDonationMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, GrantDonationPO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + GrantDonationListDTO dto = new GrantDonationListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, GrantDonationListDTO.class); + } + + @Override + public PageInfo healthInsuranceList(OtherDeductionDetailQueryParam param) { + HealthInsurancePO build; + if (param.getId() != null) { + build = HealthInsurancePO.builder().mainId(param.getId()).build(); + } else { + build = HealthInsurancePO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getHealthInsuranceMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, HealthInsurancePO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + HealthInsuranceListDTO dto = new HealthInsuranceListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, HealthInsuranceListDTO.class); + } + + @Override + public PageInfo otherDerateDeductionList(OtherDeductionDetailQueryParam param) { + OtherDerateDeductionPO build; + if (param.getId() != null) { + build = OtherDerateDeductionPO.builder().mainId(param.getId()).build(); + } else { + build = OtherDerateDeductionPO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getOtherDerateDeductionMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, OtherDerateDeductionPO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + OtherDerateDeductionListDTO dto = new OtherDerateDeductionListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, OtherDerateDeductionListDTO.class); + } + + @Override + public PageInfo personalPensionList(OtherDeductionDetailQueryParam param) { + PersonalPensionPO build; + if (param.getId() != null) { + build = PersonalPensionPO.builder().mainId(param.getId()).build(); + } else { + build = PersonalPensionPO.builder().taxAgentId(param.getTaxAgentId()).taxYearMonth(param.getTaxCycle()).employeeId(param.getEmployeeId()).build(); + } + + List pos = getPersonalPensionMapper().listSome(build); + List empIds = SalaryEntityUtil.properties(pos, PersonalPensionPO::getEmployeeId, Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + List listDTOS = pos.stream().map(po -> { + PersonalPensionListDTO dto = new PersonalPensionListDTO(); + BeanUtils.copyProperties(po, dto); + DataCollectionEmployee employee = employeeMap.getOrDefault(po.getEmployeeId(), new DataCollectionEmployee()); + TaxAgentPO taxAgent = taxAgentMap.getOrDefault(po.getTaxAgentId(), new TaxAgentPO()); + dto.setUsername(employee.getUsername()); + dto.setTaxAgentName(taxAgent.getName()); + dto.setDepartmentName(employee.getDepartmentName()); + dto.setMobile(employee.getMobile()); + dto.setJobNum(employee.getWorkcode()); + dto.setIdNo(employee.getIdNo()); + return dto; + }).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PersonalPensionListDTO.class); + } + + @Override + public List queryFreeIncomes(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getFreeIncomeMapper().listSome(FreeIncomePO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryDerateDeductions(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getDerateDeductionMapper().listSome(DerateDeductionPO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryEndowmentInsurances(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getEndowmentInsuranceMapper().listSome(EndowmentInsurancePO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryGrantDonations(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getGrantDonationMapper().listSome(GrantDonationPO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryHealthInsurances(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getHealthInsuranceMapper().listSome(HealthInsurancePO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryOtherDerateDeductions(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getOtherDerateDeductionMapper().listSome(OtherDerateDeductionPO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + @Override + public List queryPersonalPensions(OtherDeductionFreeListQueryParam param) { + ValidUtil.doValidator(param); + return getPersonalPensionMapper().listSome(PersonalPensionPO.builder().taxYearMonth(param.getTaxCycle()).taxAgentId(param.getTaxAgentId()).build()); + } + + + @Override + public void saveFreeIncome(FreeIncomeSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + FreeIncomePO po = FreeIncomePO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .freeItem(param.getFreeItem()) + .freeProperty(param.getFreeProperty()) + .freeAmount(param.getFreeAmount()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getFreeIncomeMapper().insertIgnoreNull(po); + } else { + FreeIncomePO po = getFreeIncomeMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setFreeItem(param.getFreeItem()); + po.setFreeProperty(param.getFreeProperty()); + po.setFreeAmount(param.getFreeAmount()); + + getFreeIncomeMapper().updateIgnoreNull(po); + } + } + + @Override + public void saveEndowmentInsurance(EndowmentInsuranceSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + EndowmentInsurancePO po = EndowmentInsurancePO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .deductionMonth(param.getDeductionMonth()) + .accountNumber(param.getAccountNumber()) + .checkCode(param.getCheckCode()) + .yearPremium(param.getYearPremium()) + .monthPremium(param.getMonthPremium()) + .currentDeduction(param.getCurrentDeduction()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getEndowmentInsuranceMapper().insertIgnoreNull(po); + } else { + EndowmentInsurancePO po = getEndowmentInsuranceMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setDeductionMonth(param.getDeductionMonth()); + po.setAccountNumber(param.getAccountNumber()); + po.setCheckCode(param.getCheckCode()); + po.setYearPremium(param.getYearPremium()); + po.setMonthPremium(param.getMonthPremium()); + po.setCurrentDeduction(param.getCurrentDeduction()); + + getEndowmentInsuranceMapper().updateIgnoreNull(po); + } + } + + @Override + public void saveGrantDonation(GrantDonationSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + GrantDonationPO po = GrantDonationPO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .recipientName(param.getRecipientName()) + .taxCode(param.getTaxCode()) + .donationNumber(param.getDonationNumber()) + .donateDate(param.getDonateDate()) + .donateAmount(param.getDonateAmount()) + .deductionProportion(param.getDeductionProportion()) + .actualDeduction(param.getActualDeduction()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getGrantDonationMapper().insertIgnoreNull(po); + } else { + GrantDonationPO po = getGrantDonationMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setRecipientName(param.getRecipientName()); + po.setTaxCode(param.getTaxCode()); + po.setDonationNumber(param.getDonationNumber()); + po.setDonateDate(param.getDonateDate()); + po.setDonateAmount(param.getDonateAmount()); + po.setDeductionProportion(param.getDeductionProportion()); + po.setActualDeduction(param.getActualDeduction()); + + getGrantDonationMapper().updateIgnoreNull(po); + } + } + + @Override + public void saveHealthInsurance(HealthInsuranceSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + HealthInsurancePO po = HealthInsurancePO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .identificationNumber(param.getIdentificationNumber()) + .effectiveDate(param.getEffectiveDate()) + .yearPremium(param.getYearPremium()) + .monthPremium(param.getMonthPremium()) + .currentDeduction(param.getCurrentDeduction()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getHealthInsuranceMapper().insertIgnoreNull(po); + } else { + HealthInsurancePO po = getHealthInsuranceMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setIdentificationNumber(param.getIdentificationNumber()); + po.setEffectiveDate(param.getEffectiveDate()); + po.setYearPremium(param.getYearPremium()); + po.setMonthPremium(param.getMonthPremium()); + po.setCurrentDeduction(param.getCurrentDeduction()); + + getHealthInsuranceMapper().updateIgnoreNull(po); + } + } + + @Override + public void saveOtherDerateDeduction(OtherDerateDeductionSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + OtherDerateDeductionPO po = OtherDerateDeductionPO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .otherDeduction(param.getOtherDeduction()) + .remark(param.getRemark()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getOtherDerateDeductionMapper().insertIgnoreNull(po); + } else { + OtherDerateDeductionPO po = getOtherDerateDeductionMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setOtherDeduction(param.getOtherDeduction()); + po.setRemark(param.getRemark()); + + getOtherDerateDeductionMapper().updateIgnoreNull(po); + } + } + + @Override + public void saveDerateDeduction(DerateDeductionSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + DerateDeductionPO po = DerateDeductionPO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .derateAmount(param.getDerateAmount()) + .derateItem(param.getDerateItem()) + .derateProperty(param.getDerateProperty()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getDerateDeductionMapper().insertIgnoreNull(po); + } else { + DerateDeductionPO po = getDerateDeductionMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setDerateAmount(param.getDerateAmount()); + po.setDerateItem(param.getDerateItem()); + po.setDerateProperty(param.getDerateProperty()); + + getDerateDeductionMapper().updateIgnoreNull(po); + } + } + + @Override + public void savePersonalPension(PersonalPensionSaveParam param) { + Date now = new Date(); + + Long mainId = param.getMainId(); + OtherDeductionPO deductionPO = getById(mainId); + if (deductionPO == null) { + throw new SalaryRunTimeException("筝肢;筝絖鐚"); + } + + Long id = param.getId(); + if (id == null) { + PersonalPensionPO po = PersonalPensionPO.builder() + .id(IdGenerator.generate()) + .mainId(mainId) + .taxYearMonth(deductionPO.getDeclareMonth()) + .employeeId(deductionPO.getEmployeeId()) + .taxAgentId(deductionPO.getTaxAgentId()) + .voucherTypeName(param.getVoucherTypeName()) + .voucherNo(param.getVoucherNo()) + .payAmount(param.getPayAmount()) + .fileStatus(1) + .employeeType(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getPersonalPensionMapper().insertIgnoreNull(po); + } else { + PersonalPensionPO po = getPersonalPensionMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("莅医筝絖鐚"); + } + + po.setUpdateTime(now); + po.setVoucherTypeName(param.getVoucherTypeName()); + po.setVoucherNo(param.getVoucherNo()); + po.setPayAmount(param.getPayAmount()); + + getPersonalPensionMapper().updateIgnoreNull(po); + } + } + + @Override + public void deleteFreeIncome(OtherDeductionDetailDeleteParam param) { + getFreeIncomeMapper().deleteByIds(param.getIds()); + } + + @Override + public void deleteEndowmentInsurance(OtherDeductionDetailDeleteParam param) { + getEndowmentInsuranceMapper().deleteByIds(param.getIds()); + } + + @Override + public void deleteGrantDonation(OtherDeductionDetailDeleteParam param) { + getGrantDonationMapper().deleteByIds(param.getIds()); + } + + @Override + public void deleteHealthInsurance(OtherDeductionDetailDeleteParam param) { + getHealthInsuranceMapper().deleteByIds(param.getIds()); + } + + @Override + public void deleteOtherDerateDeduction(OtherDeductionDetailDeleteParam param) { + getOtherDerateDeductionMapper().deleteByIds(param.getIds()); + } + + @Override + public void deleteDerateDeduction(OtherDeductionDetailDeleteParam param) { + getDerateDeductionMapper().deleteByIds(param.getIds()); + } + + @Override + public void deletePersonalPension(OtherDeductionDetailDeleteParam param) { + getPersonalPensionMapper().deleteByIds(param.getIds()); + } + } diff --git a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java index 4151c33d9..29ee07ccc 100644 --- a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java @@ -70,7 +70,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } @Override - public List> buildCommonRecords(List list, Long employeeId) { + public List> buildCommonRecords(List list, Long employeeId, boolean dynamicEmpInfo) { // boolean welBaseDiffSign = siArchivesBiz.isDiffWelBase(); boolean welBaseDiffSign = getSIArchivesService(user).isDiffWelBase(); List> result = new ArrayList<>(); @@ -99,10 +99,24 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ record.put("billMonth", item.getBillMonth()); record.put("billStatus", SalaryEnumUtil.enumMatchByValue(item.getBillStatus(), BillStatusEnum.values(), BillStatusEnum.class)); record.put("userName", simpleEmployee.getUsername()); - record.put("department", simpleEmployee.getDepartmentName()); - record.put("supplementaryMonth", item.getSupplementaryMonth()); record.put("mobile", simpleEmployee.getMobile()); - record.put("employeeStatus", simpleEmployee.getStatus() != null ? UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(simpleEmployee.getStatus())) : ""); + if (!dynamicEmpInfo) { + record.put("department", item.getDepartmentName()); + record.put("departmentId", item.getDepartmentId()); + record.put("subcompany", item.getSubcompanyName()); + record.put("subcompanyId", item.getSubcompanyId()); + record.put("jobtitle", item.getJobtitleName()); + record.put("jobtitleId", item.getJobtitleId()); + record.put("jobcall", item.getJobcall()); + record.put("jobcallId", item.getJobcallId()); + record.put("employeeStatus", item.getStatus() != null ? UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(item.getStatus())) : ""); + } else { + record.put("department", simpleEmployee.getDepartmentName()); + record.put("departmentId", simpleEmployee.getDepartmentId()); + record.put("employeeStatus", simpleEmployee.getStatus() != null ? UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(simpleEmployee.getStatus())) : ""); + } + + record.put("supplementaryMonth", item.getSupplementaryMonth()); ResourceFromEnum from = SalaryEnumUtil.enumMatchByValue(item.getResourceFrom(), ResourceFromEnum.values(), ResourceFromEnum.class); record.put("workcode", StringUtils.isBlank(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()); record.put("idNo", Util.null2String(simpleEmployee.getIdNo())); diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index 57a098cca..b0424ad47 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteFieldQueryParam; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; +import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaTaxRateDTO; import com.engine.salary.entity.salaryformula.po.FormulaVar; @@ -77,6 +78,10 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic return (SalarySobItemService) ServiceUtil.getService(SalarySobItemServiceImpl.class, user); } + private VariableItemService getVariableItemService(User user) { + return ServiceUtil.getService(VariableItemServiceImpl.class, user); + } + // @Override // public ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List filterFormDataList, Map extendParam, // DataCollectionEmployee employee) { @@ -166,6 +171,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic case SALARY_CYCLE: vars = convert2FormulaVar(SalarySobCycleDTO.class, referenceEnum.getValue() + ""); break; + case VARIABLE_ITEM: + vars = variableArchives2FormulaVar(referenceEnum, extendParam); + break; default: break; } @@ -251,6 +259,8 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic convert2FormulaVar(SalaryAcctEmployeePO.class, SalarySQLReferenceEnum.SALARY_ACCT_EMPLOYEE.getValue() + "")); result.put(SalarySQLReferenceEnum.SALARY_CYCLE.getDefaultLabel(), convert2FormulaVar(SalarySobCycleDTO.class, SalarySQLReferenceEnum.SALARY_CYCLE.getValue() + "")); + result.put(SalaryFormulaReferenceEnum.VARIABLE_ITEM.getDefaultLabel(), + variableArchives2FormulaVar(SalaryFormulaReferenceEnum.VARIABLE_ITEM, null)); return result; } return result; @@ -402,6 +412,20 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic }).collect(Collectors.toList()); } + private List variableArchives2FormulaVar(SalaryFormulaReferenceEnum referenceEnum, Map extendParam) { + List variableItems; + variableItems = getVariableItemService(user).listAll(); + return variableItems.stream() + .map(e -> { + FormulaVar formulaVar = new FormulaVar(); + formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + e.getCode()); + formulaVar.setName(e.getName()); + formulaVar.setSource("" + referenceEnum.getValue()); + formulaVar.setFieldType(e.getDataType()); + return formulaVar; + }).collect(Collectors.toList()); + } + private List convert2FormulaVar(Class clazz, String formId) { Field[] declaredFields = clazz.getDeclaredFields(); List formulaVars = Lists.newArrayListWithExpectedSize(declaredFields.length); diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 6f222bbf2..e3608a60f 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -339,7 +339,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List insuranceAccountDetailPOS = pageInfo.getList(); //井膸茖 - List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); + List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId, false); PageInfo> pageInfos = new PageInfo<>(records); pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(queryParam.getCurrent()); @@ -406,7 +406,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List insuranceAccountDetailPOS = pageInfo.getList(); encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); + List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId, false); PageInfo> pageInfos = new PageInfo<>(records); pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(queryParam.getCurrent()); @@ -476,7 +476,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List insuranceAccountDetailPOS = pageInfo.getList(); encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); + List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId, false); PageInfo> pageInfos = new PageInfo<>(records); pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(queryParam.getCurrent()); @@ -535,7 +535,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List insuranceAccountDetailPOS = pageInfo.getList(); encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); + List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId, false); PageInfo> pageInfos = new PageInfo<>(records); pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(queryParam.getCurrent()); @@ -650,6 +650,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { AccountParam accountParam = new AccountParam(); accountParam.setBillMonth(param.getBillMonth()); accountParam.setIds(collect); + + //胼悟菴綺 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return; + } + // 紮菴綺 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "悟筝")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + siAccounting(accountParam); } @@ -1567,11 +1584,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void socialSecurityBenefitsRecalculate(InsuranceAccountBatchPO param) { //fixme 井悟♂肢 1佈侃絲劫g軸箙>査筝茣絅 2茣絅筝悟莅医 3ゆ悟莅医羃≧篏睡絲劫篁順胼佈侃 // int num = getSiAccountBiz(user).checkIfBusinessaccounting(param); - int num = checkIfBusinessAccounting(param); - //茵腓阪群膸頮悟菴筝初井悟 - if (num > 0) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "綏画←悟膸悟菴鐚羈井悟鐚")); - } +// int num = checkIfBusinessAccounting(param); +// //茵腓阪群膸頮悟菴筝初井悟 +// if (num > 0) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "綏画←悟膸悟菴鐚羈井悟鐚")); +// } param.setBillStatus(0); // getSiAccountBiz(user).updateById(param); updateById(param); @@ -1652,7 +1669,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { encryptUtil.decryptList(accountExportPOS, AccountExportPO.class); SalaryI18nUtil.i18nList(accountExportPOS); // 井膸茖 - List> records = getSIExportService(user).buildCommonRecords(accountExportPOS); + List> records = getSIExportService(user).buildCommonRecords(accountExportPOS, true); // excel絲弱榊井 List> rows = Lists.newArrayListWithExpectedSize(records.size()); @@ -1845,11 +1862,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!empIdsInPayMonthRange.contains(employeeId)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99920, "悟篋阪")); } + DataCollectionEmployee employee = getSalaryEmployeeService(user).getEmployeeById(employeeId); // 絨茖InsuranceAccountDetailPO Date now = new Date(); InsuranceAccountDetailPO insuranceAccountDetailPO = new InsuranceAccountDetailPO(); insuranceAccountDetailPO.setBillStatus(0); insuranceAccountDetailPO.setEmployeeId(employeeId); + if (employee != null) { + insuranceAccountDetailPO.setSubcompanyName(employee.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(employee.getSubcompanyid()); + insuranceAccountDetailPO.setDepartmentName(employee.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(employee.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(employee.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(employee.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(employee.getJobcall()); + insuranceAccountDetailPO.setJobcallId(employee.getJobcallId()); + insuranceAccountDetailPO.setStatus(employee.getStatus()); + } insuranceAccountDetailPO.setPaymentOrganization(paymentOrganization); insuranceAccountDetailPO.setPaymentStatus(1); insuranceAccountDetailPO.setResourceFrom(0); @@ -4209,7 +4238,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { PageInfo pageInfo = siBatchListCommonPage(queryParam); List insuranceAccountDetailPOS = pageInfo.getList(); // 井膸茖 - List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); + List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId, false); // Map maxSizeRecord = records.stream().reduce(new HashMap<>(), (a, b) -> a.size() > b.size() ? a : b); Map sumRow = countSum(records); datas.put("sumRow", sumRow); @@ -4245,7 +4274,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { list.addAll(extList); encryptUtil.decryptList(list, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(list, employeeId); + List> records = getService(user).buildCommonRecords(list, employeeId, false); // Map maxSizeRecord = records.stream().reduce(new HashMap<>(), (a, b) -> a.size() > b.size() ? a : b); Map sumRow = countSum(records); datas.put("sumRow", sumRow); @@ -4284,7 +4313,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { list.addAll(extList); encryptUtil.decryptList(list, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(list, employeeId); + List> records = getService(user).buildCommonRecords(list, employeeId, false); Map sumRow = countSum(records); datas.put("sumRow", sumRow); return datas; @@ -4322,7 +4351,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { list.addAll(extList); encryptUtil.decryptList(list, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getService(user).buildCommonRecords(list, employeeId); + List> records = getService(user).buildCommonRecords(list, employeeId, false); Map sumRow = countSum(records); datas.put("sumRow", sumRow); return datas; @@ -4597,6 +4626,19 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { InsuranceAccountDetailPO insuranceAccountDetailPO = new InsuranceAccountDetailPO(); insuranceAccountDetailPO.setId(IdGenerator.generate()); insuranceAccountDetailPO.setEmployeeId(employeeId); + DataCollectionEmployee employee = getSalaryEmployeeService(user).getEmployeeById(employeeId); + if (employee != null) { + insuranceAccountDetailPO.setSubcompanyName(employee.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(employee.getSubcompanyid()); + insuranceAccountDetailPO.setDepartmentName(employee.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(employee.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(employee.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(employee.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(employee.getJobcall()); + insuranceAccountDetailPO.setJobcallId(employee.getJobcallId()); + insuranceAccountDetailPO.setStatus(employee.getStatus()); + } + insuranceAccountDetailPO.setBillMonth(billMonth.substring(0, 7)); insuranceAccountDetailPO.setBillStatus(BillStatusEnum.NOT_ARCHIVED.getValue()); insuranceAccountDetailPO.setPaymentStatus(PaymentStatusEnum.BALANCE.getValue()); @@ -4882,6 +4924,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { // AccountParam selectParam = new AccountParam(); // selectParam.setBillMonth(param.getBillMonth()); // selectParam.setPaymentOrganization(param.getPaymentOrganization()); + + //胼悟菴綺 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return String.valueOf(user.getUID()); + } + // 紮菴綺 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "悟筝")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + ExecutorService taskExecutor = Executors.newCachedThreadPool(); taskExecutor.execute(() -> { siAccounting(param); @@ -4905,11 +4964,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void siAccounting(AccountParam param) { - //胼悟菴綺 - ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth()); - if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { - return; - } + // //胼悟菴綺 + // ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + // if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + // return; + // } log.info("綣紮悟鐚綵篏篋坂減:{}", user.getLastname()); log.info("悟狗:{}, 悟篁:{}, 筝腮g軸箙>査:{}, 薤罨≧悟:{}", new Date(), param.getBillMonth(), param.getPaymentOrganization(), param.isFlag()); @@ -4989,15 +5048,15 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { .setProgress(BigDecimal.ZERO) .setStatus(true) .setMessage(StringUtils.EMPTY); - getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), initProgress); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); if (CollectionUtils.isEmpty(ids)) { - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); return; } log.info("綣紮胼悟井鐚緇紊篋阪育:{}", ids.size()); - siCommonAccount(param.getBillMonth(), ids, param.getPaymentOrganization()); + siCommonAccount(param.getBillMonth(), ids, param.getPaymentOrganization(), param.isFlag()); log.info("胼悟井絎罸鐚綣紮井紊"); handleData(ids, param); @@ -5008,11 +5067,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { getSIAccountDetailTempMapper().batchDelByEmpIdsAndMonthAndPayOrg(part, param.getBillMonth(), param.getPaymentOrganization()); }); log.info("贋亥悟菴綺β径径径径径"); - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); log.info("胼悟菴綺絎鐚"); } catch (Exception e) { log.error("account run fail", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "胼悟咲") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "胼悟咲") + ": " + e.getMessage()); List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); if (CollectionUtils.isNotEmpty(list)) { @@ -5025,10 +5084,22 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } - public void siCommonAccount(String billMonth, List ids, Long paymentOrganization) { + public void siCommonAccount(String billMonth, List ids, Long paymentOrganization, boolean isFirstFlag) { // Map insuranceArchivesAccountPOS = siArchivesBiz.buildBatchAccount(ids, paymentOrganization); Map insuranceArchivesAccountPOS = getSIArchivesService(user).buildBatchAccount(ids, paymentOrganization); + List historyDetailData = new ArrayList<>(); + List employeeList = new ArrayList<>(); + if (!isFirstFlag) { + // 筝薤罨≧悟鐚荀腓鞘兊井 + historyDetailData.addAll(getInsuranceAccountDetailMapper().list(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); + historyDetailData.addAll(getInsuranceAccountDetailMapper().extList(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); + } else { + employeeList = getSalaryEmployeeService(user).listByIds(ids); + } + Map historyDetailDataMap = SalaryEntityUtil.convert2Map(historyDetailData, InsuranceAccountDetailPO::getEmployeeId); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List list = new ArrayList<>(); int count = 0; for (Map.Entry entry : insuranceArchivesAccountPOS.entrySet()) { @@ -5046,6 +5117,34 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { insuranceAccountDetailPO.setResourceFrom(ResourceFromEnum.SYSTEM.getValue()); insuranceAccountDetailPO.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); insuranceAccountDetailPO.setPaymentOrganization(paymentOrganization); + if (isFirstFlag) { + // 罨≧悟 + DataCollectionEmployee employee = employeeMap.get(k); + if (employee != null) { + insuranceAccountDetailPO.setSubcompanyName(employee.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(employee.getSubcompanyid()); + insuranceAccountDetailPO.setDepartmentName(employee.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(employee.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(employee.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(employee.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(employee.getJobcall()); + insuranceAccountDetailPO.setJobcallId(employee.getJobcallId()); + insuranceAccountDetailPO.setStatus(employee.getStatus()); + } + } else { + InsuranceAccountDetailPO historyDetail = historyDetailDataMap.get(k); + if (historyDetail != null) { + insuranceAccountDetailPO.setSubcompanyName(historyDetail.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(historyDetail.getSubcompanyId()); + insuranceAccountDetailPO.setDepartmentName(historyDetail.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(historyDetail.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(historyDetail.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(historyDetail.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(historyDetail.getJobcall()); + insuranceAccountDetailPO.setJobcallId(historyDetail.getJobcallId()); + insuranceAccountDetailPO.setStatus(historyDetail.getStatus()); + } + } //悟腓鞘 accountSocial(insuranceAccountDetailPO, v, billMonth); @@ -5063,11 +5162,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (count % 50 == 0 || count >= ids.size()) { if (count >= ids.size()) { - getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth, BigDecimal.valueOf(0.99), false); - log.info("贋亥悟菴綺鐚綵菴綺筝:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, BigDecimal.valueOf(0.99), false); + log.info("贋亥悟菴綺鐚綵菴綺筝:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } else { - getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth, count >= ids.size() ? count % 50 : 50); - log.info("贋亥悟菴綺鐚綵菴綺筝:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, count >= ids.size() ? count % 50 : 50); + log.info("贋亥悟菴綺鐚綵菴綺筝:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } } @@ -5081,7 +5180,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //筝贋区;井ュ if (CollectionUtils.isNotEmpty(list)) { encryptUtil.encryptList(list, InsuranceAccountDetailTempPO.class); - List> lists = splitList(list, 40); + List> lists = splitList(list, 20); lists.forEach(subList -> { getSIAccountDetailTempMapper().batchSaveAccountTempDetails(subList); }); @@ -5690,7 +5789,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } } catch (Exception e) { log.error("胼悟井紊紊沿乾", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "胼悟咲") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "胼悟咲") + ": " + e.getMessage()); throw e; } } @@ -5966,8 +6065,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { employeeIds = employeeIds.stream().filter(f -> empIdsInPayMonthRange.contains(f)).collect(Collectors.toList()); SalaryAssert.notEmpty(employeeIds, SalaryI18nUtil.getI18nLabel(0, "悟篋阪")); + + // キ綏ヤ拭 + List employeeList = getSalaryEmployeeService(user).listByIds(employeeIds); + Map empMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + List baseList = new ArrayList<>(); employeeIds.stream().forEach(id -> { + DataCollectionEmployee employee = empMap.get(id); param.getBillMonthList().stream().forEach(month -> { SupplementAccountBaseParam supplementAccountBaseParam = SupplementAccountBaseParam.builder() .supplementaryMonth(month) @@ -5977,6 +6082,17 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { .billMonth(param.getBillMonth()) .supplementType(param.getSupplementType()) .build(); + if (employee != null) { + supplementAccountBaseParam.setSubcompanyName(employee.getSubcompanyName()); + supplementAccountBaseParam.setSubcompanyId(employee.getSubcompanyid()); + supplementAccountBaseParam.setDepartmentName(employee.getDepartmentName()); + supplementAccountBaseParam.setDepartmentId(employee.getDepartmentId()); + supplementAccountBaseParam.setJobtitleName(employee.getJobtitleName()); + supplementAccountBaseParam.setJobtitleId(employee.getJobtitleId()); + supplementAccountBaseParam.setJobcall(employee.getJobcall()); + supplementAccountBaseParam.setJobcallId(employee.getJobcallId()); + supplementAccountBaseParam.setStatus(employee.getStatus()); + } if ("2".equals(param.getSupplementType())) { supplementAccountBaseParam.setSocialPaymentBaseString(param.getSocialPaymentBaseString()); supplementAccountBaseParam.setFundPaymentBaseString(param.getFundPaymentBaseString()); @@ -6033,6 +6149,16 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { insuranceAccountDetailPO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); insuranceAccountDetailPO.setId(IdGenerator.generate()); insuranceAccountDetailPO.setEmployeeId(baseParam.getEmployeeId()); + insuranceAccountDetailPO.setSubcompanyName(baseParam.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(baseParam.getSubcompanyId()); + insuranceAccountDetailPO.setDepartmentName(baseParam.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(baseParam.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(baseParam.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(baseParam.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(baseParam.getJobcall()); + insuranceAccountDetailPO.setJobcallId(baseParam.getJobcallId()); + insuranceAccountDetailPO.setStatus(baseParam.getStatus()); + insuranceAccountDetailPO.setPaymentStatus(PaymentStatusEnum.REPAIR.getValue()); insuranceAccountDetailPO.setSupplementaryMonth(baseParam.getSupplementaryMonth()); insuranceAccountDetailPO.setPaymentOrganization(baseParam.getPaymentOrganization()); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index bbd487ae4..2eb675db2 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -1042,7 +1042,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //キ腓鞘罅f socialList = getSocialSchemeMapper().getSocialById(socialIds); //膈腓鞘罅f後割拭 - toStopSocialIds = socialList.stream().filter(f-> f.getSocialSchemeId() == null || (f.getSocialEndTime() != null && f.getSocialEndTime().length() > 0 && (f.getSocialEndTime().compareTo(todayMonth)) <= 0)) + toStopSocialIds = socialList.stream().filter(f-> f.getSocialSchemeId() == null || (f.getSocialEndTime() != null && f.getSocialEndTime().length() > 0)) .map(InsuranceArchivesSocialSchemePO::getId).collect(Collectors.toList()); List finalToStopSocialIds = toStopSocialIds; @@ -1052,7 +1052,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (fundIds.size() > 0) { fundList = getFundSchemeMapper().getFundById(fundIds); - toStopFundIds = fundList.stream().filter(f->f.getFundSchemeId() == null || (f.getFundEndTime() != null && f.getFundEndTime().length() > 0 && (f.getFundEndTime().compareTo(todayMonth)) <= 0)) + toStopFundIds = fundList.stream().filter(f->f.getFundSchemeId() == null || (f.getFundEndTime() != null && f.getFundEndTime().length() > 0)) .map(InsuranceArchivesFundSchemePO::getId).collect(Collectors.toList()); List finalToStopFundIds = toStopFundIds; noStopBaseInfoIds = (List) CollectionUtils.union(noStopBaseInfoIds, baseInfoPOList.stream().filter(f -> !finalToStopFundIds.contains(f.getFundArchivesId())).map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList())); @@ -1061,7 +1061,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (otherIds.size() > 0) { otherList = getOtherSchemeMapper().getOtherById(otherIds); - toStopOtherIds= otherList.stream().filter(f->f.getOtherSchemeId() == null || (f.getOtherEndTime() != null && f.getOtherEndTime().length() > 0 && (f.getOtherEndTime().compareTo(todayMonth)) <= 0)) + toStopOtherIds= otherList.stream().filter(f->f.getOtherSchemeId() == null || (f.getOtherEndTime() != null && f.getOtherEndTime().length() > 0)) .map(InsuranceArchivesOtherSchemePO::getId).collect(Collectors.toList()); List finalToStopOtherIds = toStopOtherIds; noStopBaseInfoIds = (List) CollectionUtils.union(noStopBaseInfoIds, baseInfoPOList.stream().filter(f -> !finalToStopOtherIds.contains(f.getOtherArchivesId())).map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList())); @@ -1134,7 +1134,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } @Override - public Map stopWithoutLimit(Collection ids, String yearMonth) { + public Map stopWithoutLimit(Collection ids, String yearMonth, String fundEndYearMonth, String otherEndYearMonth) { if (CollectionUtils.isEmpty(ids)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "羃≧篁ユ篏莅医")); @@ -1155,10 +1155,13 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (baseInfoIds.size() > 0) { getInsuranceBaseInfoMapper().updateRunStatusByIds(InsuranceArchivesBaseInfoPO.builder() .ids(baseInfoIds).runStatus(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()).build()); + String socialEndYearMonth = yearMonth; + fundEndYearMonth = StringUtils.isBlank(fundEndYearMonth) ? yearMonth : fundEndYearMonth; + otherEndYearMonth = StringUtils.isBlank(otherEndYearMonth) ? yearMonth : otherEndYearMonth; - getSocialSchemeMapper().batchUpdateEndTime(socialIds, yearMonth); - getFundSchemeMapper().batchUpdateEndTime(fundIds, yearMonth); - getOtherSchemeMapper().batchUpdateEndTime(otherIds, yearMonth); + getSocialSchemeMapper().batchUpdateEndTime(socialIds, socialEndYearMonth); + getFundSchemeMapper().batchUpdateEndTime(fundIds, fundEndYearMonth); + getOtherSchemeMapper().batchUpdateEndTime(otherIds, otherEndYearMonth); } @@ -3469,6 +3472,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService .build(); String combineErrorMsg = ""; + log.info("oldSocialInfoListSize:" + oldSocialInfoList.size()); //膸茖井井 if (oldSocialInfoList.size() == 1) { //井 @@ -3737,6 +3741,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return null; } + log.info("莪翫 堺遺拭{}", paymentBaseJson); for (Map.Entry entry : paymentBaseJson.entrySet()) { //ゆ胼惹筝榊/医 @@ -3749,13 +3754,14 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //号胼号id腱id膽雁些絲壕院膽頑換倶ヨ∽膸 List insuranceSchemeDetailPOList = getInsuranceSchemeDetailMapper().getByPI(primaryId, Long.valueOf(entry.getKey())); - log.info("胼号id: {},, 胼膸蕁id鐚{}", primaryId, Long.valueOf(entry.getKey())); + log.info("莪 胼号id: {},, 胼膸蕁id鐚{}", primaryId, Long.valueOf(entry.getKey())); if (insuranceSchemeDetailPOList.size() == 0) { - log.info("号胼号id腱id膽雁些絲壕院ヨ∽膸筝null鐚胼号id: {}, 胼膸蕁id鐚{}", primaryId, Long.valueOf(entry.getKey())); + log.info("莪 号胼号id腱id膽雁些絲壕院ヨ∽膸筝null鐚胼号id: {}, 胼膸蕁id鐚{}", primaryId, Long.valueOf(entry.getKey())); throw new SalaryRunTimeException("号胼号id腱id膽雁些絲壕院ヨ∽膸筝null鐚胼号id: "+primaryId+", 胼膸蕁id鐚{}"+ Long.valueOf(entry.getKey())); } List isPaymentList = insuranceSchemeDetailPOList.stream() .filter(f -> f.getIsPayment().equals(IsPaymentEnum.YES.getValue()) && f.getPaymentScope().equals(paymentScope)).collect(Collectors.toList()); + log.info("莪 isPaymentList: {}", isPaymentList.size()); if (isPaymentList.size() > 0) { InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); @@ -3765,18 +3771,18 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { //医寂篋絲劫胼膸筝 entry.setValue(lowerLimit); + log.info("莪 胼号id: {},, 胼膸蕁id鐚{}鐚医{}篏篋絲劫胼膸筝{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), lowerLimit); } if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { //医守篋絲劫胼膸筝 entry.setValue(upperLimit); + log.info("莪 胼号id: {},, 胼膸蕁id鐚{}鐚医{}医守篋絲劫胼膸筝{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), upperLimit); } } else { - log.info("胼膸蕁劫篋膽頑換倶鐚筝絲剛筝菴茵膾"); - return null; + log.info("莪 胼膸蕁劫篋膽頑換倶鐚筝絲剛筝菴茵膾"); } - - } + log.info("莪翫 堺遺拭{}", paymentBaseJson); return JSON.toJSONString(paymentBaseJson); } @@ -4409,4 +4415,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService partition.forEach(list -> resultList.addAll(getOtherSchemeMapper().getOtherById(list))); return resultList; } + + @Override + public List listAll() { + return getInsuranceBaseInfoMapper().listAll(); + } } diff --git a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java index bb0c776b3..bebb03851 100644 --- a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.EncryptUtil; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siaccount.param.BalanceAccountBaseParam; import com.engine.salary.entity.siaccount.param.InspectAccountParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; @@ -35,6 +36,7 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.SIAccountService; import com.engine.salary.service.SIBalanceService; +import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; @@ -98,6 +100,10 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { return MapperProxyFactory.getProxy(TaxAgentMapper.class); } + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + @Override public void del(InspectAccountParam param, Long employeeId) { @@ -172,7 +178,9 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); List socialIds = new ArrayList<>(); socialIds.addAll(socialMap.keySet()); - socialIds.addAll(socialComMap.keySet()); + if (socialComMap != null) { + socialIds.addAll(socialComMap.keySet()); + } socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); @@ -213,7 +221,9 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); List fundIds = new ArrayList<>(); fundIds.addAll(fundMap.keySet()); - fundIds.addAll(fundComMap.keySet()); + if (fundComMap != null) { + fundIds.addAll(fundComMap.keySet()); + } fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); @@ -254,7 +264,9 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); List otherIds = new ArrayList<>(); otherIds.addAll(otherMap.keySet()); - otherIds.addAll(otherComMap.keySet()); + if (otherComMap != null) { + otherIds.addAll(otherComMap.keySet()); + } otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); @@ -317,10 +329,24 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { if (balanceAccountPO != null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "茵ュ勲井綏峨鐚筝紊医鐚")); } + DataCollectionEmployee employeeById = getSalaryEmployeeService(user).getEmployeeById(employeeId); InsuranceAccountDetailPO insuranceAccountDetailPO = new InsuranceAccountDetailPO(); insuranceAccountDetailPO.setId(IdGenerator.generate()); insuranceAccountDetailPO.setEmployeeId(employeeId); + if (employeeById != null) { + insuranceAccountDetailPO.setSubcompanyName(employeeById.getSubcompanyName()); + insuranceAccountDetailPO.setSubcompanyId(employeeById.getSubcompanyid()); + insuranceAccountDetailPO.setDepartmentName(employeeById.getDepartmentName()); + insuranceAccountDetailPO.setDepartmentId(employeeById.getDepartmentId()); + insuranceAccountDetailPO.setJobtitleName(employeeById.getJobtitleName()); + insuranceAccountDetailPO.setJobtitleId(employeeById.getJobtitleId()); + insuranceAccountDetailPO.setJobcall(employeeById.getJobcall()); + insuranceAccountDetailPO.setJobcallId(employeeById.getJobcallId()); + insuranceAccountDetailPO.setStatus(employeeById.getStatus()); + } + + insuranceAccountDetailPO.setBillMonth(billMonth); insuranceAccountDetailPO.setBillStatus(BillStatusEnum.NOT_ARCHIVED.getValue()); insuranceAccountDetailPO.setPaymentStatus(PaymentStatusEnum.BALANCE.getValue()); diff --git a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java index 875947741..58f395dfb 100644 --- a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java +++ b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java @@ -289,7 +289,7 @@ public class SICategoryServiceImpl extends Service implements SICategoryService List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().listAll(); encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //井膸茖 - List> records = getRecordsBuildService(user).buildCommonRecords(insuranceAccountDetailPOS, null); + List> records = getRecordsBuildService(user).buildCommonRecords(insuranceAccountDetailPOS, null, false); String welfareTypeName = ""; switch (categoryPO.getWelfareType()) { case 1: diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index 241b1d23a..ab2b2564d 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -220,7 +220,7 @@ public class SIExportServiceImpl extends Service implements SIExportService { // } columns = buildCommonColumns(accountExportPOS, paymentStatus); - records = buildCommonRecords(accountExportPOS); + records = buildCommonRecords(accountExportPOS, false); List> excelSheetData = new ArrayList<>(); //綏ヤ膂水腱 String sheetName = SalaryI18nUtil.getI18nLabel(0, "腓鞘胼佈侃"); @@ -280,7 +280,7 @@ public class SIExportServiceImpl extends Service implements SIExportService { } @Override - public List> buildCommonRecords(List list) { + public List> buildCommonRecords(List list, boolean isExport) { // boolean welBaseDiffSign = siArchivesBiz.isDiffWelBase(); boolean welBaseDiffSign = getSIArchivesService(user).isDiffWelBase(); List> result = new ArrayList<>(); @@ -294,12 +294,17 @@ public class SIExportServiceImpl extends Service implements SIExportService { record.put("billMonth", item.getBillMonth()); record.put("billStatus", SalaryEnumUtil.enumMatchByValue(item.getBillStatus(), BillStatusEnum.values(), BillStatusEnum.class)); record.put("userName", item.getUserName()); - record.put("department", item.getDepartmentName()); + if (isExport) { + record.put("department", item.getDepartmentName()); + record.put("employeeStatus", item.getUserStatus() == null ? "" : getDefaultLabelByValue(item.getUserStatus())); + } else { + record.put("department", item.getFixedDepartmentName()); + record.put("employeeStatus", item.getFixedUserStatus() == null ? "" : getDefaultLabelByValue(item.getFixedUserStatus())); + } record.put("supplementaryMonth", item.getSupplementaryMonth()); record.put("mobile", item.getTelephone()); record.put("workcode", item.getWorkcode()); record.put("idNo", item.getIdNo()); - record.put("employeeStatus", item.getUserStatus() == null ? "" : getDefaultLabelByValue(item.getUserStatus())); ResourceFromEnum from = SalaryEnumUtil.enumMatchByValue(item.getResourceFrom(), ResourceFromEnum.values(), ResourceFromEnum.class); record.put("sourceFrom", SalaryI18nUtil.getI18nLabel(from.getLabelId(), from.getDefaultLabel())); diff --git a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java index 6766dae2b..e620c082e 100644 --- a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.config.SalaryElogConfig; import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.encrypt.EncryptUtil; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.dto.HrmInfoDTO; import com.engine.salary.entity.hrm.param.HrmQueryParam; import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam; @@ -27,6 +28,7 @@ import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.SIAccountService; import com.engine.salary.service.SIRecessionService; +import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryEntityUtil; @@ -75,6 +77,10 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic return MapperProxyFactory.getProxy(TaxAgentMapper.class); } + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + @Override public void save(RecessionParam param, Long employeeId) { @@ -108,12 +114,17 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic //紊井 List finalDetailPOS = detailPOS; List finalRecessionDetails = new ArrayList<>(); + + // キ綏ヤ拭 + List employeeList = getSalaryEmployeeService(user).listByIds(employeeIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); employeeIds.forEach(id -> { + DataCollectionEmployee employee = employeeMap.getOrDefault(id, DataCollectionEmployee.builder().build()); param.getRecessionMonthList().forEach(billMonth -> { Optional detailPOOptional = finalDetailPOS.stream().filter( detail -> Objects.equals(billMonth, detail.getBillMonth()) && Objects.equals(id, detail.getEmployeeId())).findFirst(); - detailPOOptional.ifPresent(insuranceAccountDetailPO -> recessionAccount(param, insuranceAccountDetailPO, finalRecessionDetails)); + detailPOOptional.ifPresent(insuranceAccountDetailPO -> recessionAccount(param, insuranceAccountDetailPO, finalRecessionDetails, employee)); }); }); //綏井ュ @@ -173,10 +184,10 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic } - private void recessionAccount(RecessionParam param, InsuranceAccountDetailPO insuranceAccountDetailPO, List recessionDetails) { + private void recessionAccount(RecessionParam param, InsuranceAccountDetailPO insuranceAccountDetailPO, List recessionDetails, DataCollectionEmployee employee) { List projects = param.getProjects(); InsuranceAccountDetailPO temp = new InsuranceAccountDetailPO(); - recessionBaseBuild(param, temp, insuranceAccountDetailPO); + recessionBaseBuild(param, temp, insuranceAccountDetailPO, employee); if (projects.contains(ProjectTypeEnum.ALL.getValue())) { recessionSocial(param, temp, insuranceAccountDetailPO); recessionFund(param, temp, insuranceAccountDetailPO); @@ -198,7 +209,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic - private void recessionBaseBuild(RecessionParam param, InsuranceAccountDetailPO temp, InsuranceAccountDetailPO insuranceAccountDetailPO) { + private void recessionBaseBuild(RecessionParam param, InsuranceAccountDetailPO temp, InsuranceAccountDetailPO insuranceAccountDetailPO, DataCollectionEmployee employee) { InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), Long.valueOf(param.getPaymentOrganization())); temp.setPaymentStatus(PaymentStatusEnum.RECESSION.getValue()); // temp.setId(IdGenerator.generate()); @@ -209,6 +220,17 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic temp.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); temp.setTenantKey(insuranceAccountDetailPO.getTenantKey()); temp.setEmployeeId(insuranceAccountDetailPO.getEmployeeId()); + temp.setSubcompanyName(employee.getSubcompanyName()); + temp.setSubcompanyId(employee.getSubcompanyid()); + temp.setDepartmentName(employee.getDepartmentName()); + temp.setDepartmentId(employee.getDepartmentId()); + temp.setJobtitleName(employee.getJobtitleName()); + temp.setJobtitleId(employee.getJobtitleId()); + temp.setJobcall(employee.getJobcall()); + temp.setJobcallId(employee.getJobcallId()); + temp.setStatus(employee.getStatus()); + temp.setBillMonth(param.getBillMonth()); + temp.setBillStatus(BillStatusEnum.NOT_ARCHIVED.getValue()); temp.setBillMonth(param.getBillMonth()); temp.setBillStatus(BillStatusEnum.NOT_ARCHIVED.getValue()); temp.setSupplementaryMonth(insuranceAccountDetailPO.getBillMonth()); diff --git a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java index 270fbb143..64758d625 100644 --- a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java @@ -223,13 +223,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { List> resultList = new ArrayList<>(); if (projects.contains(ProjectTypeEnum.ALL.getValue())) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -257,13 +262,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { }); } - if (fundSchemePO != null && StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString())) { + if (fundSchemePO != null && (StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString()) || StringUtils.isNotBlank(fundSchemePO.getFundPaymentComBaseString()))) { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); + Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); + List fundIds = new ArrayList<>(); + fundIds.addAll(fundMap == null ? Collections.emptyList() : fundMap.keySet()); + fundIds.addAll(fundComMap == null ? Collections.emptyList() : fundComMap.keySet()); + fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - fundMap.forEach((k, v) -> { + fundIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -291,13 +301,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { }); } - if (otherSchemePO != null && StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString())) { + if (otherSchemePO != null && (StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString()) || StringUtils.isNotBlank(otherSchemePO.getOtherPaymentComBaseString()))) { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); + Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); + List otherIds = new ArrayList<>(); + otherIds.addAll(otherMap == null ? Collections.emptyList() : otherMap.keySet()); + otherIds.addAll(otherComMap == null ? Collections.emptyList() : otherComMap.keySet()); + otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - otherMap.forEach((k, v) -> { + otherIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -327,13 +342,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { return resultList; } if (projects.contains(ProjectTypeEnum.SOCIAL.getValue())) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -365,15 +385,22 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach( k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -405,15 +432,23 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (!projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() :socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -445,15 +480,22 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue())) && (!projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue())) && (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) { - if (socialSchemePO != null && StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString())) { + if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); socialMap = socialMap.entrySet().stream().filter(e -> "9002".equals(e.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + Map socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap().getClass()); + socialComMap = socialComMap.entrySet().stream().filter(e -> "9002".equals(e.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + List socialIds = new ArrayList<>(); + socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet()); + socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialComMap.keySet()); + socialIds = socialIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - socialMap.forEach((k, v) -> { + socialIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -483,14 +525,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { } } if (projects.contains(ProjectTypeEnum.FUND.getValue())) { - if (fundSchemePO != null && StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString())) { + if (fundSchemePO != null && (StringUtils.isNotBlank(fundSchemePO.getFundPaymentBaseString()) || StringUtils.isNotBlank(fundSchemePO.getFundPaymentComBaseString()))) { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); + Map fundComMap = JSON.parseObject(fundSchemePO.getFundPaymentComBaseString(), new HashMap().getClass()); + List fundIds = new ArrayList<>(); + fundIds.addAll(fundMap == null ? Collections.emptyList() : fundMap.keySet()); + fundIds.addAll(fundComMap == null ? Collections.emptyList() : fundComMap.keySet()); + fundIds = fundIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - - fundMap.forEach((k, v) -> { + fundIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { @@ -520,14 +566,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { } } if (projects.contains(ProjectTypeEnum.OTHER.getValue())) { - if (otherSchemePO != null && StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString())) { + if (otherSchemePO != null && (StringUtils.isNotBlank(otherSchemePO.getOtherPaymentBaseString()) || StringUtils.isNotBlank(otherSchemePO.getOtherPaymentComBaseString()))) { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); + Map otherComMap = JSON.parseObject(otherSchemePO.getOtherPaymentComBaseString(), new HashMap().getClass()); + List otherIds = new ArrayList<>(); + otherIds.addAll(otherMap == null ? Collections.emptyList() : otherMap.keySet()); + otherIds.addAll(otherComMap == null ? Collections.emptyList() : otherComMap.keySet()); + otherIds = otherIds.stream().distinct().collect(Collectors.toList()); //ヨ∵ョ号筝綣膽雁些胼蕁 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); - - otherMap.forEach((k, v) -> { + otherIds.forEach(k -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "腓鞘" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "腱" : "篌筝綛顔九胼" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue())) { diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index ead724055..10a7f36ea 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -7,10 +7,10 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.component.SalaryWeaTable; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; @@ -85,6 +85,7 @@ import java.io.InputStream; import java.math.BigDecimal; import java.util.*; import java.util.function.Function; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -216,13 +217,12 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { } @Override - public Map update(Map params) { + public String update(Map params) { // return commandExecutor.execute(new SISchemeUpdateCmd(params, user)); Map apidatas = new HashMap(16); InsuranceSchemeReqParam insuranceSchemeReqParam = (InsuranceSchemeReqParam) params.get("insuranceSchemeReqParam"); // siSchemeBiz.update(insuranceSchemeReqParam, (long) user.getUID()); - update(insuranceSchemeReqParam, (long) user.getUID()); - return apidatas; + return update(insuranceSchemeReqParam, (long) user.getUID()); } @Override @@ -780,6 +780,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List socialByEmployeeId = getSIArchivesService(user).getSocialByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + // 菴羯や>査 + socialByEmployeeId = socialByEmployeeId.stream().filter(s -> s.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(socialByEmployeeId, InsuranceArchivesSocialSchemePO.class); InsuranceArchivesSocialSchemePO socialItem = null; if (socialByEmployeeId.size() > 0) { @@ -790,6 +792,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List fundByEmployeeId = getSIArchivesService(user).getFundByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + // 菴羯や>査 + fundByEmployeeId = fundByEmployeeId.stream().filter(f -> f.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(fundByEmployeeId, InsuranceArchivesFundSchemePO.class); if (fundByEmployeeId.size() > 0) { @@ -800,6 +804,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List otherByEmployeeId = getSIArchivesService(user).getOtherByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); + otherByEmployeeId = otherByEmployeeId.stream().filter(o -> o.getPaymentOrganization().equals(item.getPaymentOrganization())).collect(Collectors.toList()); encryptUtil.decryptList(otherByEmployeeId, InsuranceArchivesOtherSchemePO.class); if (otherByEmployeeId.size() > 0) { otherItem = otherByEmployeeId.get(0); @@ -2585,7 +2590,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { * @param updateParam * @param employeeId */ - public void update(InsuranceSchemeReqParam updateParam, long employeeId) { + public String update(InsuranceSchemeReqParam updateParam, long employeeId) { //ヨ∽絖胼号 InsuranceSchemePO insuranceSchemePO = getById(updateParam.getInsuranceScheme().getId()); if (Objects.isNull(insuranceSchemePO)) { @@ -2622,12 +2627,29 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { //莅医筝肢;篏ュ loggerContext.setNewValues(insuranceSchemePO1); SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext); + // ヨ√胼膸篆≧ + List oldInsuranceSchemeDetails = getInsuranceSchemeDetailMapper().queryInsuranceSchemeDetailList(updateParam.getInsuranceScheme().getId(), IsPaymentEnum.YES.getValue()); + // 罨∞膸 + List insuranceSchemeDetailPOS = InsuranceSchemeBO.convertToInsuranceSchemeDetailPoList(updateParam.getInsuranceSchemeDetailList(), employeeId, insuranceSchemePO.getId()); + + StringBuilder baseLimitStrBuilder = new StringBuilder(); + if (updateParam.getValidate() || updateParam.getChangeData()) { + // ヨ∽罨>信剛篋膠糸筝筝 + List schemeDetailChangeLimitList = getChanceLimitSchemeDetailList(oldInsuranceSchemeDetails, insuranceSchemeDetailPOS); + // 絲剛筝羯∴恭筝筝堺域茵莪 + autoAdjustBaseByLimit(updateParam, schemeDetailChangeLimitList, insuranceSchemePO, baseLimitStrBuilder); + if (updateParam.getValidate() && StringUtils.isNotBlank(baseLimitStrBuilder.toString())) { + // ♂筝絖♂筝菴罅f鐚菴腴隋莅 + return baseLimitStrBuilder.toString(); + } + } + //贋亥号膸茵 getInsuranceSchemeDetailMapper().batchDeleteByPrimaryIds(Collections.singleton(updateParam.getInsuranceScheme().getId())); //贋井膸茵 - List insuranceSchemeDetailPOS = InsuranceSchemeBO.convertToInsuranceSchemeDetailPoList(updateParam.getInsuranceSchemeDetailList(), employeeId, insuranceSchemePO.getId()); encryptUtil.encryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); insuranceSchemeDetailPOS.forEach(getInsuranceSchemeDetailMapper()::insert); + //莅医膸茵篏ュ encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); LoggerContext insuranceSchemeDetailContext = new LoggerContext<>(); @@ -2639,7 +2661,224 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { insuranceSchemeDetailContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "胼号膸")); insuranceSchemeDetailPOS.forEach(insuranceSchemeDetailContext::setNewValues); SalaryElogConfig.siSchemeLoggerTemplate.write(insuranceSchemeDetailContext); + return "success"; + } + /** + * 絲剛筝羯∴恭筝筝堺域茵莪 + * @param schemeDetailChangeLimitList + * @param insuranceSchemePO + */ + private void autoAdjustBaseByLimit(InsuranceSchemeReqParam updateParam, List schemeDetailChangeLimitList, InsuranceSchemePO insuranceSchemePO, StringBuilder baseLimitStrBuilder) { + Map> insuranceSchemeDetailMap = SalaryEntityUtil.group2Map(schemeDetailChangeLimitList, InsuranceSchemeDetailPO::getPaymentScope); + List personChangeDeatilList = insuranceSchemeDetailMap.getOrDefault(PaymentScopeEnum.SCOPE_PERSON.getValue(), Collections.emptyList()); + List companyChangeDetailList = insuranceSchemeDetailMap.getOrDefault(PaymentScopeEnum.SCOPE_COMPANY.getValue(), Collections.emptyList()); + List runStatus = Arrays.asList(EmployeeStatusEnum.STAY_DEL.getValue(), EmployeeStatusEnum.PAYING.getValue(), EmployeeStatusEnum.STAY_DEL.getValue()); + // キ莚ユ号筝腓鞘胼罅f + Integer welfareType = insuranceSchemePO.getWelfareType(); + if (welfareType.equals(WelfareTypeEnum.SOCIAL_SECURITY.getValue())) { + List needUpdateSocialArchiveList = new ArrayList<>(); + List insuranceArchivesSocialSchemePOS = getSocialSchemeMapper().listBySchemeId(insuranceSchemePO.getId(), runStatus); + encryptUtil.decryptList(insuranceArchivesSocialSchemePOS, InsuranceArchivesSocialSchemePO.class); + // キ篋阪篆≧ + List empIds = insuranceArchivesSocialSchemePOS.stream().map(InsuranceArchivesSocialSchemePO::getEmployeeId).collect(Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + // 腓鞘 + insuranceArchivesSocialSchemePOS.forEach(archive -> { + Boolean[] changeFlag = {false}; + // 筝篋肴 + String socialPaymentBaseString = archive.getSocialPaymentBaseString(); + if (CollectionUtils.isNotEmpty(personChangeDeatilList)) { + socialPaymentBaseString = adaptWelBaseLimit(socialPaymentBaseString, personChangeDeatilList, changeFlag); + } + // 夡 + String socialPaymentComBaseString = archive.getSocialPaymentComBaseString(); + if (CollectionUtils.isNotEmpty(companyChangeDetailList)) { + socialPaymentComBaseString = adaptWelBaseLimit(socialPaymentComBaseString, companyChangeDetailList, changeFlag); + } + if (changeFlag[0]) { + DataCollectionEmployee employee = employeeMap.get(archive.getEmployeeId()); + baseLimitStrBuilder.append(employee == null ? archive.getEmployeeId() : employee.getUsername() + "\n"); + archive.setSocialPaymentBaseString(socialPaymentBaseString); + archive.setSocialPaymentComBaseString(socialPaymentComBaseString); + needUpdateSocialArchiveList.add(archive); + if (updateParam.getChangeData() && CollectionUtils.isNotEmpty(needUpdateSocialArchiveList)) { + // 贋 + encryptUtil.encrypt(archive, InsuranceArchivesSocialSchemePO.class); + getSocialSchemeMapper().updateById(archive); + } + } + }); + } else if (welfareType.equals(WelfareTypeEnum.ACCUMULATION_FUND.getValue())) { + List needUpdateFundArchiveList = new ArrayList<>(); + List insuranceArchivesFundSchemePOS = getFundSchemeMapper().listBySchemeId(insuranceSchemePO.getId(), runStatus); + encryptUtil.decryptList(insuranceArchivesFundSchemePOS, InsuranceArchivesFundSchemePO.class); + // キ篋阪篆≧ + List empIds = insuranceArchivesFundSchemePOS.stream().map(InsuranceArchivesFundSchemePO::getEmployeeId).collect(Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + // 腱 + insuranceArchivesFundSchemePOS.forEach(archive -> { + Boolean[] changeFlag = {false}; + // 筝篋肴 + String fundPaymentBaseString = archive.getFundPaymentBaseString(); + if (CollectionUtils.isNotEmpty(personChangeDeatilList)) { + fundPaymentBaseString = adaptWelBaseLimit(fundPaymentBaseString, personChangeDeatilList, changeFlag); + } + // 夡 + String fundPaymentComBaseString = archive.getFundPaymentComBaseString(); + if (CollectionUtils.isNotEmpty(companyChangeDetailList)) { + fundPaymentComBaseString = adaptWelBaseLimit(fundPaymentComBaseString, companyChangeDetailList, changeFlag); + } + if (changeFlag[0]) { + DataCollectionEmployee employee = employeeMap.get(archive.getEmployeeId()); + baseLimitStrBuilder.append(employee == null ? archive.getEmployeeId() : employee.getUsername() + "\n"); + archive.setFundPaymentBaseString(fundPaymentBaseString); + archive.setFundPaymentComBaseString(fundPaymentComBaseString); + needUpdateFundArchiveList.add(archive); + if (updateParam.getChangeData() && CollectionUtils.isNotEmpty(needUpdateFundArchiveList)) { + // 贋 + encryptUtil.encrypt(archive, InsuranceArchivesFundSchemePO.class); + getFundSchemeMapper().updateById(archive); + } + } + }); + } else if (welfareType.equals(WelfareTypeEnum.OTHER.getValue())) { + List insuranceArchivesOtherSchemePOS = getOtherSchemeMapper().listBySchemeId(insuranceSchemePO.getId(), runStatus); + encryptUtil.decryptList(insuranceArchivesOtherSchemePOS, InsuranceArchivesOtherSchemePO.class); + List needUpdateOtherArchiveList = new ArrayList<>(); + // キ篋阪篆≧ + List empIds = insuranceArchivesOtherSchemePOS.stream().map(InsuranceArchivesOtherSchemePO::getEmployeeId).collect(Collectors.toList()); + List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); + // 篌筝綛顔銀胼 + insuranceArchivesOtherSchemePOS.forEach(archive -> { + Boolean[] changeFlag = {false}; + // 筝篋肴 + String otherPaymentBaseString = archive.getOtherPaymentBaseString(); + if (CollectionUtils.isNotEmpty(personChangeDeatilList)) { + otherPaymentBaseString = adaptWelBaseLimit(otherPaymentBaseString, personChangeDeatilList, changeFlag); + } + // 夡雁 + String otherPaymentComBaseString = archive.getOtherPaymentComBaseString(); + if (CollectionUtils.isNotEmpty(companyChangeDetailList)) { + otherPaymentComBaseString = adaptWelBaseLimit(otherPaymentComBaseString, companyChangeDetailList, changeFlag); + } + if (changeFlag[0]) { + DataCollectionEmployee employee = employeeMap.get(archive.getEmployeeId()); + baseLimitStrBuilder.append(employee == null ? archive.getEmployeeId() : employee.getUsername() + "\n"); + archive.setOtherPaymentBaseString(otherPaymentBaseString); + archive.setOtherPaymentComBaseString(otherPaymentComBaseString); + needUpdateOtherArchiveList.add(archive); + if (updateParam.getChangeData() && CollectionUtils.isNotEmpty(needUpdateOtherArchiveList)) { + // 贋 + encryptUtil.encrypt(archive, InsuranceArchivesOtherSchemePO.class); + getOtherSchemeMapper().updateById(archive); + } + } + }); + } + } + + public String adaptWelBaseLimit(String paymentBaseString, List insuranceSchemeDetailPOList, Boolean[] changeFlag) { + + if (paymentBaseString == null) { + return null; + } + Map paymentBaseJson = JSON.parseObject(paymentBaseString, new HashMap().getClass()); + if (paymentBaseJson == null) { + return null; + } + Map insuranceSchemeDetailPOMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOList, InsuranceSchemeDetailPO::getInsuranceId); + List insuranceIdList = insuranceSchemeDetailPOList.stream().map(po -> po.getInsuranceId().toString()).collect(Collectors.toList()); + + Set paymentInsuranceIdList = paymentBaseJson.keySet(); + List needAddInsuranceIds = insuranceIdList.stream().filter(insuranceId -> !paymentInsuranceIdList.contains(insuranceId)).collect(Collectors.toList()); + needAddInsuranceIds.stream().forEach(insuranceId -> { + paymentBaseJson.put(insuranceId, "0.00"); + }); + + for (Map.Entry entry : paymentBaseJson.entrySet()) { + + //ゆ胼惹筝榊/医 + if (entry.getValue() == null || entry.getValue().length() == 0) { + continue; + } else if (!isNumeric(entry.getValue())) { + log.info("胼守医鐚"); + continue; + // throw new SalaryRunTimeException("胼守医"); + } + + if (!insuranceIdList.contains(entry.getKey())) { + // 羃≧篆剛筝 + continue; + } + InsuranceSchemeDetailPO insuranceSchemeDetailPO = insuranceSchemeDetailPOMap.get(Long.valueOf(entry.getKey())); + if (insuranceSchemeDetailPO != null) { + + encryptUtil.decrypt(insuranceSchemeDetailPO, InsuranceSchemeDetailPO.class); + String lowerLimit = "0.000".equals(insuranceSchemeDetailPO.getLowerLimit()) ? null : insuranceSchemeDetailPO.getLowerLimit(); + String upperLimit = "0.000".equals(insuranceSchemeDetailPO.getUpperLimit()) ? null : insuranceSchemeDetailPO.getUpperLimit(); + if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { + //医寂篋絲劫胼膸筝 + entry.setValue(lowerLimit); + changeFlag[0] = true; + } + if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { + //医守篋絲劫胼膸筝 + entry.setValue(upperLimit); + changeFlag[0] = true; + } + } + } + return JSON.toJSONString(paymentBaseJson); + } + + /** + * ゆ絖膃筝我筝堺贋井絨井茣 + */ + public static boolean isNumeric(String str){ + + Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$"); + Matcher isNum = pattern.matcher(str); + if (!isNum.matches()) { + return false; + } + return true; + + } + + /** + * キ篆剛篋膸蕁合筝筝 + * @param oldInsuranceSchemeDetails + * @param newInsuranceSchemeDetails + * @return + */ + private List getChanceLimitSchemeDetailList(List oldInsuranceSchemeDetails, List newInsuranceSchemeDetails) { + List schemeDetailChangeLimitList = new ArrayList<>(); + // key: 胼蕁id-膽雁些 + Map oldInsuranceSchemeDetailMap = SalaryEntityUtil.convert2Map(oldInsuranceSchemeDetails, d -> d.getInsuranceId() + "-" + d.getPaymentScope()); + newInsuranceSchemeDetails.stream() + .filter(detail -> detail.getIsPayment().equals(NumberUtils.INTEGER_ONE)) + .forEach(detail -> { + boolean changeFlag = false; + InsuranceSchemeDetailPO oldInsuranceSchemeDetailPO = oldInsuranceSchemeDetailMap.get(detail.getInsuranceId() + "-" + detail.getPaymentScope()); + if (oldInsuranceSchemeDetailPO == null) { + changeFlag = true; + } else { + if (!oldInsuranceSchemeDetailPO.getUpperLimit().equals(detail.getUpperLimit())) { + changeFlag = true; + } + if (!oldInsuranceSchemeDetailPO.getLowerLimit().equals(detail.getLowerLimit())) { + changeFlag = true; + } + } + if (changeFlag) { + schemeDetailChangeLimitList.add(detail); + } + }); + return schemeDetailChangeLimitList; } public int checkBeforeDeleteSocialscheme(Map params) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 32380ea28..16ab88f30 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -31,7 +31,6 @@ import com.engine.salary.util.SalaryEntityUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.util.StopWatch; @@ -110,8 +109,13 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); } + private VariableArchiveService getVariableArchiveService(User user) { + return ServiceUtil.getService(VariableArchiveServiceImpl.class, user); + } + @Override public void calculate(SalaryAcctCalculateBO salaryAcctCalculateBO, DataCollectionEmployee simpleEmployee, List salarySobBackItems) { + log.info("綣紮悟V3 {}", salaryAcctCalculateBO); StopWatch sw = new StopWatch("悟倶膸鐚id鐚" + salaryAcctCalculateBO.getSalaryAcctRecordPO().getId() + ""); Date now = new Date(); try { @@ -157,6 +161,11 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.start("ヨ∵莎悟篋阪莎悟膸"); List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + Map empItemValueMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOS, p -> p.getSalaryAcctEmpId() + "_" + p.getSalaryItemId(), SalaryAcctResultPO::getResultValue); + sw.stop(); + // ヨ∽貴莎 + sw.start("ヨ∽貴莎"); + List> variableArchiveList = getVariableArchiveService(user).listBySalaryMonthAndEmployeeIds(salarySobCycleDTO.getSalaryMonth(), employeeIds, taxAgentId); sw.stop(); // 莎膊九膊悟膸 (羃≧膊蕁) sw.start("ヨ∵莎膊九膊悟膸"); @@ -165,8 +174,6 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc for (Map.Entry> et : collect.entrySet()) { salaryAcctResultPOMap.put(et.getKey(), et.getValue().get(0).getOriginResultValue()); } - //悟絎 - Map salaryAcctLockResultPOS = MapUtils.emptyIfNull(salaryAcctCalculateBO.getSalaryAcctLockResultPOS()); sw.stop(); // 9ヨ∝後腮罨丈絮羔綛区∞銀莎悟膸 sw.start("ヨ∝後腮罨丈絮羔綛区∞銀莎悟膸"); @@ -181,7 +188,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.stop(); // 10莉∽綣靶莨筝 sw.start("莉∽綣靶莨筝"); - CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, welfareData, attendQuoteDataDTOS, salaryAcctResultPOS); + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, welfareData, attendQuoteDataDTOS, salaryAcctResultPOS, variableArchiveList); Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); sw.stop(); sw.start("井膸紊"); @@ -204,6 +211,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc StringBuffer noticeMsg = new StringBuffer(); for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { Long salaryAcctEmployeePOId = salaryAcctEmployeePO.getId(); + List lockItems = salaryAcctEmployeePO.getLockItems(); //1 キ綵莎悟篋阪綣鋇 List formulaVarValues = formulaVarMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()); //2 篋阪篆≧ @@ -273,8 +281,8 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc // 紊絨亥 resultValue = SalaryAcctFormulaBO.roundResultValue(resultValue, salaryItemPO, salarySobBackItems, salarySobBackItemMap, salaryItemIdKeySalarySobItemPOMap); //絎 - if (salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId) != null) { - resultValue = salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId).getResultValue(); + if (lockItems != null && lockItems.contains(salaryItemId)) { + resultValue = empItemValueMap.getOrDefault(salaryAcctEmployeePOId + "_" + salaryItemId, StringUtils.EMPTY); } // 絨綏牙顒∞菴莎蕁合取習∽綣惹兄育筝 String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index b4e2e0543..7c05fdc41 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -7,8 +7,8 @@ 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.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctConfig; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; import com.engine.salary.entity.salaryacct.dto.AbnormalEmployeeListDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO; @@ -17,6 +17,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; 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.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; @@ -27,6 +28,7 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; 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.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -48,6 +50,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 莎悟篋阪 *

Copyright: Copyright (c) 2022

@@ -103,6 +107,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryCacheService getSalaryCacheService(User user) { + return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); + } + + private SalaryAcctSobConfigService getSalaryAcctSobConfigService(User user) { + return ServiceUtil.getService(SalaryAcctSobConfigServiceImpl.class, user); + } + + + private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); @Override public List countBySalaryAcctRecordId(Collection salaryAcctRecordIds) { @@ -141,24 +155,24 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void addFromReduce(SalaryAcctEmployeeAddParam addParam) { - ValidUtil.doValidator(addParam); - // ヨ∵莎悟莅医 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); - } - // ヨ∝ッ罸鎞莎悟篋阪 - List salaryAcctEmployeePOS = listByIds(addParam.getIds()); - if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "莎悟篋阪筝絖綏画←")); - } - // 羞糸莎悟篋阪 - Date now = new Date(); - List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() - .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { - batchSave(newSalaryAcctEmployeePOS); - } +// ValidUtil.doValidator(addParam); +// // ヨ∵莎悟莅医 +// SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); +// if (Objects.isNull(salaryAcctRecordPO)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); +// } +// // ヨ∝ッ罸鎞莎悟篋阪 +// List salaryAcctEmployeePOS = listByIds(addParam.getIds()); +// if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "莎悟篋阪筝絖綏画←")); +// } +// // 羞糸莎悟篋阪 +// Date now = new Date(); +// List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() +// .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); +// if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { +// batchSave(newSalaryAcctEmployeePOS); +// } } @Override @@ -289,12 +303,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return Collections.emptyList(); } Set lastMonthSalaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId); - // 筝筝悟篋阪 - List lastMonthSalaryAcctEmployeePOS = listBySalaryAcctRecordIds(lastMonthSalaryAcctRecordIds); - Map lastMonthSalaryAcctEmployeePOMap = SalaryEntityUtil.convert2Map(lastMonthSalaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); // 悟篋阪 - List salaryAcctEmployeePOS = listByParam(queryParam); + List salaryAcctEmployeePOS = listBySalaryAcctRecordId(queryParam.getSalaryAcctRecordId()); Set keySet = SalaryEntityUtil.properties(salaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); + // 筝筝悟篋阪 + queryParam.setSalaryAcctRecordId(null); + queryParam.setSalaryAcctRecordIds(lastMonthSalaryAcctRecordIds); + List lastMonthSalaryAcctEmployeePOS = listByParam(queryParam); + Map lastMonthSalaryAcctEmployeePOMap = SalaryEntityUtil.convert2Map(lastMonthSalaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "-" + salaryAcctEmployeePO.getTaxAgentId()); + List resultList = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(keySet)) { lastMonthSalaryAcctEmployeePOMap.forEach((k, v) -> { @@ -423,7 +440,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "筝腮g軸箙>査筝莚ヤ査罅f篆≧莎膽雁些ユ筝莎")); } - batchSave(salaryAcctEmployeePOS); + + //篆絖悟篋阪 + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); // 莅医ュ @@ -439,6 +458,38 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); } + private void saveAcctEmployeePOS(List salaryAcctEmployeePOS, SalarySobCycleDTO sobCycle) { + + boolean shotEmpBtn = "1".equals(getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_BTN)); + + //炊√辱ф井 + if (shotEmpBtn) { +// String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); + shotEmpData(salaryAcctEmployeePOS, sobCycle.getSalaryCycleFromDate()); + } + //篆絖 + batchSave(salaryAcctEmployeePOS); + } + + private void shotEmpData(List salaryAcctEmployeePOS, Date shotTime) { + List employees = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List snapshot = getSalaryEmployeeService(user).snapshot(employees, shotTime); + Map shotEmpMap = SalaryEntityUtil.convert2Map(snapshot, DataCollectionEmployee::getEmployeeId); + salaryAcctEmployeePOS.forEach(salaryAcctEmployeePO -> { + DataCollectionEmployee shotEmp = shotEmpMap.getOrDefault(salaryAcctEmployeePO.getEmployeeId(), new DataCollectionEmployee()); + salaryAcctEmployeePO.setDepartmentId(shotEmp.getDepartmentId()); + salaryAcctEmployeePO.setDepartmentName(shotEmp.getDepartmentName()); + salaryAcctEmployeePO.setJobcall(shotEmp.getJobcall()); + salaryAcctEmployeePO.setJobcallId(shotEmp.getJobcallId()); + salaryAcctEmployeePO.setJobtitleId(shotEmp.getJobtitleId()); + salaryAcctEmployeePO.setJobtitleName(shotEmp.getJobtitleName()); + salaryAcctEmployeePO.setSubcompanyId(shotEmp.getSubcompanyid()); + salaryAcctEmployeePO.setSubcompanyName(shotEmp.getSubcompanyName()); + salaryAcctEmployeePO.setStatus(shotEmp.getStatus()); + salaryAcctEmployeePO.setAccountType(shotEmp.getAccountType()); + }); + } + @Override public void batchSave(Collection salaryAcctEmployeePOS) { if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { @@ -450,6 +501,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void deleteByIds(Collection ids) { + + if (CollectionUtils.isEmpty(ids)) { + return; + } + // よ莎悟篋阪 getSalaryAcctEmployeeMapper().deleteByIds(ids); // よ莎悟篋阪絲劫莎悟膸 @@ -547,48 +603,63 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 篆絖莎悟篋阪 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { - batchSave(salaryAcctEmployeePOS); + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); } } @Override public void refresh(Long salaryAcctRecordId) { - // ヨ∵莎悟篋阪 - List salaryAcctEmployeePOS = listBySalaryAcctRecordId(salaryAcctRecordId); - if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { - return; - } - List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); // ヨ∵莎悟莅医 SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); if (Objects.isNull(salaryAcctRecordPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); } + + // 号莎茣絅ヨ≫査 + List salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + if (CollectionUtils.isEmpty(salaryEmployees)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "ヨ√域侃絅筝活篋阪")); + } + + // 号莎茣絅ヨ∵莎 + SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); + //ヨ∵侃絅絲劫g軸箙>査 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - //菴羯ゆ筝絮篋綵茣絅g軸箙>査篋阪 Long taxAgentId = salarySobPO.getTaxAgentId(); - // ヨ∵莎悟莅医絽絅莎 - SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); // ヨ∵莎罅f鐚キ篋阪筝腮g軸箙>査 + List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); - List employees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); // 莉∽莎悟篋阪po - List newSalaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(employees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); - newSalaryAcctEmployeePOS = newSalaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); - // や札莎悟篋阪 - getSalaryAcctEmployeeMapper().deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - // ユ亥莎悟篋阪 - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { - batchSave(newSalaryAcctEmployeePOS); - } + List newEmps = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); + //菴羯ゆ筝絮篋綵茣絅g軸箙>査篋阪 + newEmps = newEmps.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + Map newEmpMap = SalaryEntityUtil.convert2Map(newEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); + + + // ヨ∵莎悟篋阪 + List oldEmps = listBySalaryAcctRecordId(salaryAcctRecordId); + Map oldEmpMap = SalaryEntityUtil.convert2Map(oldEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); + + //医 + List addEmps = newEmps.stream().filter(po -> !oldEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).collect(Collectors.toList()); + + // + List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + + deleteByIds(delIds); + + saveAcctEmployeePOS(addEmps, salarySobCycleDTO); } @Override public List listBySalaryStatisticsReportParam(SalaryStatisticsReportDataQueryParam param) { - SalaryAcctEmployeePO lambdaQueryChainWrapper = SalaryAcctEmployeePO.builder().build(); + //綺臀 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + SalaryAcctEmployeeQueryParam lambdaQueryChainWrapper = new SalaryAcctEmployeeQueryParam(); + lambdaQueryChainWrapper.setOrderRule(orderRule); // 筝腮g軸箙>査 // Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); @@ -646,11 +717,6 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct lambdaQueryChainWrapper.setSalaryMonths(yearMonths); } - // 九ユ緇蕁合 -// if (CollectionUtils.isNotEmpty(param.getIncomeCategory())) { -// lambdaQueryChainWrapper.in(SalaryAcctEmployeePO::getIncomeCategory, param.getIncomeCategory().stream().map(Object::toString).collect(Collectors.toList())); -// } - //ゆ綵罅f井 List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listAll(); List salaryAcctRecordIds = salaryAcctRecordPOS.stream() @@ -662,12 +728,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) { //ヨ List> partition = Lists.partition(salaryAcctRecordIds, 500); - List empList = new ArrayList<>(); - partition.forEach(part -> { - lambdaQueryChainWrapper.setSalaryAcctRecordIds(salaryAcctRecordIds); - empList.addAll(getSalaryAcctEmployeeMapper().listSome(lambdaQueryChainWrapper)); - }); - list = empList; + for (List part : partition) { + lambdaQueryChainWrapper.setSalaryAcctRecordIds(part); + List pos = getSalaryAcctEmployeeMapper().list(lambdaQueryChainWrapper); + list.addAll(pos); + } } if (CollectionUtils.isEmpty(list)) { @@ -680,69 +745,47 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // キ篆≧ List subCompanyIds = param.getSubCompany(); if (CollectionUtils.isNotEmpty(subCompanyIds)) { -// SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); -// List allSubcompanyIds = new ArrayList<>(); -// for (Long subCompanyId : subCompanyIds) { -// String organizationIds = Util.null2String(subCompanyId); -// String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds); -// allSubcompanyIds.addAll(Arrays.asList(allChildSubcompanyId.split(","))); -// } - employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyId())).collect(Collectors.toList()); + } } // 菴羯 List depart = param.getDepart(); if (CollectionUtils.isNotEmpty(depart)) { -// List allDepartIds = new ArrayList<>(); -// for (Long subDepartId : depart) { -// String ids = Util.null2String(subDepartId); -// try { -// String allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids); -// allDepartIds.addAll(Arrays.asList(allDepartId.toString().split(","))); -// } catch (Exception e) { -// log.error("キ絖紊沿乾", e); -// } -// } - employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } + } + // 絏篏菴羯 + List position = param.getPosition(); + if (CollectionUtils.isNotEmpty(position)) { + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } } - // 膾ц羯 -// if (CollectionUtils.isNotEmpty(param.getGrade())) { -// Set employeeIdsByGradeFilter = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// if (simpleEmployee.getGrade() != null && param.getGrade().contains(simpleEmployee.getGrade().getId())) { -// employeeIdsByGradeFilter.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByGradeFilter)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByGradeFilter.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } -// // 絏篏菴羯 -// if (CollectionUtils.isNotEmpty(param.getPosition())) { -// Set employeeIdsByPostionFilter = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) { -// employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByPostionFilter.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 篋坂倶菴羯 if (CollectionUtils.isNotEmpty(param.getStatus())) { - Set employeeIdsByStatus = new HashSet<>(); - employeeList.forEach(simpleEmployee -> { - if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { - employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + if (isRealOrg) { + Set employeeIdsByStatus = new HashSet<>(); + employeeList.forEach(simpleEmployee -> { + if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { + employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + } + }); + if (CollectionUtils.isEmpty(employeeIdsByStatus)) { + return Lists.newArrayList(); } - }); - if (CollectionUtils.isEmpty(employeeIdsByStatus)) { - return Lists.newArrayList(); + list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(po -> po.getStatus() != null && param.getStatus().contains(po.getStatus())).collect(Collectors.toList()); } - list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); } // ヨユ if (CollectionUtils.isNotEmpty(param.getHiredate())) { @@ -758,27 +801,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } list = list.stream().filter(po -> employeeIdsByHiredate.contains(po.getEmployeeId())).collect(Collectors.toList()); } -// // 胼肢ユ todo -// if (CollectionUtils.isNotEmpty(param.getLeavedate())) { -// Set employeeIdsByLeavedate = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// -// if (simpleEmployee.get() != null && ) { -// employeeIdsByLeavedate.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByLeavedate)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByLeavedate.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 篋阪 if (CollectionUtils.isNotEmpty(param.getEmployee())) { list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList()); } - Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); - list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + if (isRealOrg) { + Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); + list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + } return list; } @@ -791,12 +822,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void lockEmp(SalaryAcctResultUpdateLockStatusParam updateParam) { - // ヨ∵莎悟莅医 - SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(updateParam.getSalaryAcctRecordId()); - if (CollectionUtils.isEmpty(salaryAcctRecord.getLockSalaryItemIds())) { - salaryAcctRecord.setLockSalaryItemIds(new ArrayList<>()); - } - List salaryAcctEmployees = listBySalaryAcctRecordId(updateParam.getSalaryAcctRecordId()); + List salaryAcctEmployees = listByIds(updateParam.getAcctEmpIds()); if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return; } @@ -806,13 +832,20 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException("絎倶綣絽醐"); } - Set acctEmpIds = updateParam.getAcctEmpIds(); - if (CollUtil.isNotEmpty(acctEmpIds)) { - //絎絎篋阪 - getSalaryAcctEmployeeMapper().lockByAcctEmpIds(lockStatus.getValue(), acctEmpIds); + if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { + SalaryAcctConfig salaryAcctSobConfig = getSalaryAcctSobConfigService(user).getSalaryAcctConfig(updateParam.getSalaryAcctRecordId()); + List salarySobItems = salaryAcctSobConfig.getSalarySobItems(); + List itemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); + + salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { + salaryAcctEmployeePO.setLockItems(itemIds); + lock(salaryAcctEmployeePO); + }); } else { - //絎 - getSalaryAcctEmployeeMapper().lockByRecordId(lockStatus.getValue(), updateParam.getSalaryAcctRecordId()); + salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { + salaryAcctEmployeePO.setLockItems(new ArrayList<>()); + lock(salaryAcctEmployeePO); + }); } } @@ -846,4 +879,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct public void updateIgnoreNull(SalaryAcctEmployeePO salaryAcctEmployeePO) { getSalaryAcctEmployeeMapper().updateIgnoreNull(salaryAcctEmployeePO); } + + @Override + public void lock(SalaryAcctEmployeePO salaryAcctEmployeePO) { + getSalaryAcctEmployeeMapper().lock(salaryAcctEmployeePO); + } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 01aee1e36..67aff3ecd 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; @@ -57,11 +58,9 @@ import com.engine.salary.wrapper.SalarySobItemWrapper; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.wbi.util.Util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.ss.usermodel.FormulaEvaluator; @@ -70,6 +69,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; +import org.springframework.util.StopWatch; import weaver.file.ImageFileManager; import weaver.hrm.User; @@ -166,6 +166,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return ServiceUtil.getService(SalaryAcctSobConfigServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + @Override public XSSFWorkbook exportSalaryAcctEmployee(SalaryAcctEmployeeQueryParam queryParam) { ValidUtil.doValidator(queryParam); @@ -459,7 +463,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryAcctRecordPO byId = getSalaryAcctRecordService(user).getById(salaryAcctRecordPO.getId()); boolean isBackCalc = Objects.equals(byId.getBackCalcStatus(), 1); // ヨ∵莎茣絅筝莎蕁合+綏ヤ拭絖罧 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(),salaryAcctRecordPO.getSalarySobId(), isBackCalc); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(), salaryAcctRecordPO.getSalarySobId(), isBackCalc); // 綮肴莎悟膸茵茵紊 List columnList = SalaryAcctResultBO.buildTableColumns(salarySobItemAggregateDTO, ListUtils.emptyIfNull(salaryAcctRecordPO.getLockSalaryItemIds())); // キ阪紊贋 @@ -517,6 +521,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // ヨ∵莎悟莅医莎茣絅莎蕁合 List salarySobItems = config.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // ヨ∵莎蕁合 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); @@ -591,11 +596,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // .build()) // .collect(Collectors.toList()); // 膽絖冗 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); - // 莉∽dto -// return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).checkItems(checkItems).build(); + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); + } return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build(); } @@ -610,6 +616,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // ヨ∵莎悟莅医莎茣絅莎蕁合 List salarySobItems = salaryAcctConfig.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // ヨ∵莎蕁合 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); @@ -667,18 +674,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc @Override public XSSFWorkbook exportImportTemplate(SalaryAcctImportTemplateParam param) { -// ValidUtil.doValidator(param); - // 篁膽絖筝キ莎蕁合 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); + + // ヨ∵莎悟莅医 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); + } + + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); + } + // 綽蕁脂絲弱ユ─炊莎蕁合 if (CollectionUtils.isEmpty(checkItems)) { - // キ篁ラ莎蕁合 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); - } // ヨ∵莎悟莅医莎茣絅莎蕁合 List salarySobItems = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); @@ -688,11 +699,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc checkItems = salaryItemIds; } param.setSalaryItemIds(checkItems); - // ヨ∵莎悟莅医 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); - } + // // 罔≧粋;紊(藥莅ゅ絽"筝腮g軸箙>査""紮") // List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "紮"), // "", @@ -890,7 +897,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // headerList.add("阪"); // headerList.add("綏ュ"); // ヨ∵莎茣絅筝莎蕁合 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(),true); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(), true); // // 綏ヤ拭 // for (SalarySobEmpFieldDTO item : salarySobItemAggregateDTO.getEmpFields()) { @@ -976,9 +983,32 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } @Override - public void cacheImportField(List salaryItems) { - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryItems)); + public void cacheImportField(SalaryAcctResultTemplateSaveParam saveParam) { + Long salaryAcctRecordId = saveParam.getSalaryAcctRecordId(); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("莎悟莅医筝絖"); + } + + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Collections.singletonList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + salaryAcctResultTemplatePOS.forEach(templatePO -> getSalaryAcctResultTemplateService(user).deleteById(templatePO.getId())); + } + + Date now = new Date(); + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() + .id(IdGenerator.generate()) + .type(2) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) + .templateName("") + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); + } @Override @@ -1011,6 +1041,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } private Map batchImport(SalaryAcctImportParam param, String importType) { + StopWatch stopWatch = new StopWatch("絲弱ユ悟井"); + stopWatch.start("井紊"); Map apidatas = new HashMap(); ValidUtil.doValidator(param); Date now = new Date(); @@ -1028,27 +1060,43 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); } + stopWatch.stop(); + + // ♂篁ョ莨 + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (StringUtils.equals("importSalaryAcctResult", importType) && !recordIsCanEdit) { + throw new SalaryRunTimeException("莚ユ悟莅医綏牙莎桁≧刻羈膽莨悟鐚莚桁ゅ≧号腮"); + } // 莎茣絅筝莎蕁合 + stopWatch.start("莎茣絅筝莎蕁合"); List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); // 莎蕁合 Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getName, SalaryItemPO::getId); + stopWatch.stop(); // 莎悟隋莅ょ篋阪 + stopWatch.start("莎悟隋莅ょ篋阪"); List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordId); Map salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployees, e -> e.getEmployeeId() + "-" + e.getTaxAgentId()); + stopWatch.stop(); // 腱隙篋阪 - List salaryEmployees = getSalaryEmployeeService(user).listAllForReport(); - Map salaryEmployeeMap = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getUsername, DataCollectionEmployee::getEmployeeId); - Map emps = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getEmployeeId); + stopWatch.start("莎悟隋莅ょ篋阪"); + List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployees, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List salaryEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + stopWatch.stop(); // 腱隙筝腮g軸箙>査 + stopWatch.start("腱隙筝腮g軸箙>査"); List taxAgents = getTaxAgentService(user).listAll(); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getName, TaxAgentPO::getId); + stopWatch.stop(); // 莎悟篋阪篆≧絖罧 + stopWatch.start("莎悟篋阪篆≧絖罧"); List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List salarySobEmpFields = SalaryEntityUtil.properties(new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS), SalarySobEmpFieldDTO::getFieldName, Collectors.toList()); List excludeFields = Arrays.asList("筝腮g軸箙>査", "", "紮"); salarySobEmpFields = salarySobEmpFields.stream().filter(field -> !excludeFields.contains(field)).collect(Collectors.toList()); + stopWatch.stop(); // 膣√(篋莅∞菴綺) int index = 0; // 紊沿乾育 @@ -1078,10 +1126,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); - + stopWatch.start("茹f篁"); Workbook workbook = ExcelSupport.parseFile(fileInputStream, EXCEL_TYPE_XLSX); Sheet sheet = workbook.getSheetAt(0); - + stopWatch.stop(); // 莚腓坂拭 List excelComments = Lists.newArrayList(); @@ -1100,7 +1148,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // List> data = ExcelParseHelper.parse2Map(sheet, 1); List> data; // if (StringUtils.equals("importSalaryAcctResult", importType)) { - data = ExcelParseHelper.parse2Map(workbook, 0, 2, 1); + data = ExcelParseHelper.parse2Map(sheet, 2, 1); // } else { // data = ExcelParseHelper.parse2Map(sheet, 1); // } @@ -1111,6 +1159,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (CollectionUtils.isEmpty(data)) { throw new RuntimeException("井"); } + stopWatch.start("茹f井"); for (int i = 0; i < data.size(); i++) { String row = "膃" + (i + 3) + "茵"; @@ -1145,7 +1194,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc //salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "紮筝巡減腥"), i, i, j, j); } else { //膈絲弱ヤ査篆≧篁ュ篋阪莎羣羆筝拷亥篋阪篆≧ - List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode,idNo, null); + List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode, idNo, null); if (CollectionUtils.isEmpty(employeeSameIds)) { isError = true; @@ -1232,19 +1281,19 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc salaryAcctResultsOfOneEmp.add(salaryAcctResult); - SalaryAcctResultReportPO reportPO = SalaryAcctResultReportPO.builder() - .id(IdGenerator.generate()) - .salaryAcctRecordId(salaryAcctRecordPO.getId()) - .salarySobId(salaryAcctRecordPO.getSalarySobId()) - .salaryItemId(salaryItemId) - .resultValue(dataValue) - .creator(currentEmployeeId) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - salaryAcctResultReportOfOneEmp.add(reportPO); +// SalaryAcctResultReportPO reportPO = SalaryAcctResultReportPO.builder() +// .id(IdGenerator.generate()) +// .salaryAcctRecordId(salaryAcctRecordPO.getId()) +// .salarySobId(salaryAcctRecordPO.getSalarySobId()) +// .salaryItemId(salaryItemId) +// .resultValue(dataValue) +// .creator(currentEmployeeId) +// .createTime(now) +// .updateTime(now) +// .deleteType(0) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build(); +// salaryAcctResultReportOfOneEmp.add(reportPO); } } } @@ -1321,29 +1370,31 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc salaryAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId); } - for (SalaryAcctResultReportPO po : salaryAcctResultReportOfOneEmp) { - po.setEmployeeId(Util.null2String(employeeId)); - po.setTaxAgentId(taxAgentId); - po.setSalaryAcctEmpId(Util.null2String(salaryAcctEmpId)); - - DataCollectionEmployee emp = emps.get(employeeId); - po.setSubcompanyId(emp.getSubcompanyid()); - po.setDepartmentId(emp.getDepartmentId()); - po.setCostcenterId(emp.getCostcenterId()); - po.setJobtitleId(emp.getJobtitleId()); - po.setLocationId(emp.getLocationId()); - - } +// for (SalaryAcctResultReportPO po : salaryAcctResultReportOfOneEmp) { +// po.setEmployeeId(Util.null2String(employeeId)); +// po.setTaxAgentId(taxAgentId); +// po.setSalaryAcctEmpId(Util.null2String(salaryAcctEmpId)); +// +// DataCollectionEmployee emp = emps.get(employeeId); +// po.setSubcompanyId(emp.getSubcompanyid()); +// po.setDepartmentId(emp.getDepartmentId()); +// po.setCostcenterId(emp.getCostcenterId()); +// po.setJobtitleId(emp.getJobtitleId()); +// po.setLocationId(emp.getLocationId()); +// +// } salaryAcctEmpIds.add(salaryAcctEmpId); salaryAcctResults.addAll(salaryAcctResultsOfOneEmp); - salaryAcctReports.addAll(salaryAcctResultReportOfOneEmp); +// salaryAcctReports.addAll(salaryAcctResultReportOfOneEmp); } successCount++; } + stopWatch.stop(); // 絋sheet莚井 // if (CollectionUtils.isNotEmpty(errorDatas)) { // salaryBatchService.createErrorExcelSheet(headers, errorDatas, excelSheet.getName(), excelComments, errorExcelSheets); // } + stopWatch.start("ユ井"); if (StringUtils.equals("importExcelAcctResult", importType)) { getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); if (CollectionUtils.isNotEmpty(excelAcctResults)) { @@ -1362,21 +1413,21 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc deleteResults = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); //ゆヨ; - getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); +// getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); } if (CollectionUtils.isNotEmpty(salaryAcctResults)) { // 紊絲弱ヨ莎蕁合膊 handleOriginResultValue(deleteResults, salaryAcctResults); // 紊篁巡篁遵絲 List list4log = new ArrayList<>(); - salaryAcctResults.stream().forEach(source -> { + salaryAcctResults.forEach(source -> { SalaryAcctResultPO target = new SalaryAcctResultPO(); BeanUtils.copyProperties(source, target); list4log.add(target); }); getSalaryAcctResultService(user).batchSave(salaryAcctResults); - // 莅医篏ュ TODO 菴井羃≧id鐚id紜井ユ井紊紊紊篏 + // 莅医篏ュ SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); String targetName = salarySobPO.getName() + ":" + SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()); LoggerContext loggerContext = new LoggerContext<>(); @@ -1389,13 +1440,15 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc loggerContext.setOldValueList(list4log); SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); - //ヨ; - getSalaryAcctReportService(user).batchSave(salaryAcctReports); +// //ヨ; +// getSalaryAcctReportService(user).batchSave(salaryAcctReports); } if (CollectionUtils.isNotEmpty(newSalaryAcctEmployees)) { getSalaryAcctEmployeeService(user).batchSave(newSalaryAcctEmployees); } } + stopWatch.stop(); + stopWatch.start("絎井"); SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); if (autoLock != null && StringUtils.equals(autoLock.getConfValue(), "1")) { // 絲弱ョ処絎 @@ -1405,6 +1458,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc .lockStatus(LockStatusEnum.LOCK).build(); getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); } + stopWatch.stop(); + log.info(stopWatch.prettyPrint()); apidatas.put("successCount", successCount); apidatas.put("errorCount", failCount); @@ -1467,7 +1522,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc throw new SalaryRunTimeException("莎悟莅医筝絖"); } saveParam.setSalarySobId(salaryAcctRecordPO.getSalarySobId()); - List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId()); + List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId(), Arrays.asList(0, 1)); if (saveParam.getId() != null) { Optional saveNameOptional = templateBySobId.stream().filter(po -> po.getTemplateName().equals(saveParam.getTemplateName()) && !po.getId().equals(saveParam.getId())).findFirst(); if (saveNameOptional.isPresent()) { @@ -1480,6 +1535,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } salaryAcctResultTemplatePO.setSalaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")); salaryAcctResultTemplatePO.setTemplateName(saveParam.getTemplateName()); + salaryAcctResultTemplatePO.setType(0); salaryAcctResultTemplatePO.setUpdateTime(new Date()); getSalaryAcctResultTemplateService(user).update(salaryAcctResultTemplatePO); } else { @@ -1489,16 +1545,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } // 医産 Date now = new Date(); - getSalaryAcctResultTemplateService(user).insertIgnoreNull(SalaryAcctResultTemplatePO.builder() + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() .id(IdGenerator.generate()) + .type(0) .salarySobId(saveParam.getSalarySobId()) .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) .templateName(saveParam.getTemplateName()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(0) - .build()); + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); } } @@ -1525,7 +1583,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException("莎悟莅医筝榊"); } - List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(0, 1)); if (StringUtils.isNotBlank(param.getTemplateName())) { salaryAcctResultTemplatePOS = salaryAcctResultTemplatePOS.stream().filter(po -> po.getTemplateName().contains(param.getTemplateName())).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index deb771892..38a199032 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -975,4 +975,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } return getSalaryAcctRecordMapper().listAcctTaxAgent(salaryAcctRecordIds); } + + @Override + public void updateDate(Long id, Date updateTime) { + getSalaryAcctRecordMapper().updateDate(id,updateTime); + } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 132b66264..cd3cac891 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -1,6 +1,5 @@ package com.engine.salary.service.impl; -import cn.hutool.core.collection.CollUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -11,12 +10,12 @@ import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; +import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.JobCallInfo; import com.engine.salary.entity.hrm.PositionInfo; import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.progress.ProgressDTO; -import com.engine.salary.entity.report.bo.SalaryAcctResultReportBO; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.entity.salaryacct.bo.*; import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; @@ -55,7 +54,6 @@ 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.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -74,6 +72,7 @@ import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.util.StopWatch; +import weaver.general.BaseBean; import weaver.hrm.User; import java.math.BigDecimal; @@ -200,6 +199,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(TaxAgentAdminServiceImpl.class, user); } + private VariableItemService getVariableItemService(User user) { + return ServiceUtil.getService(VariableItemServiceImpl.class, user); + } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + + private SalaryCheckResultService salaryCheckResultService; private SalaryAcctSobConfigService getSalaryAcctSobConfigService(User user) { @@ -648,6 +655,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe }); getSalaryAcctEmployeeService(user).updateIgnoreNull(salaryAcctEmployeePO); + // ♂篁ョ莨 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctEmployeePO.getSalaryAcctRecordId()); + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (!recordIsCanEdit) { + throw new SalaryRunTimeException("莚ユ悟莅医綏牙莎桁≧刻羈膽莨悟鐚莚桁ゅ≧号腮"); + } // ヨ√ョ莎悟膸 List salaryAcctResultPOSOld = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpId(saveParam.getSalaryAcctEmpId()).build()); // 茹e @@ -689,12 +702,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List> partition = Lists.partition(salaryAcctResultPOS, 100); partition.forEach(getSalaryAcctResultMapper()::batchInsert); } - //ヨ; todo - getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(Collections.singletonList(saveParam.getSalaryAcctEmpId()), saveItemIds); - List salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2PO(saveParam, salaryAcctEmployeePO, (long) user.getUID(), emps); - if (CollectionUtils.isNotEmpty(salaryAcctResultReportPOS)) { - getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); - } + //ヨ; +// getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(Collections.singletonList(saveParam.getSalaryAcctEmpId()), saveItemIds); +// List salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2PO(saveParam, salaryAcctEmployeePO, (long) user.getUID(), emps); +// if (CollectionUtils.isNotEmpty(salaryAcctResultReportPOS)) { +// getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); +// } // 絖莎悟膸井ユュ @@ -784,8 +797,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public void calculate(SalaryAcctCalculateParam calculateParam, DataCollectionEmployee simpleEmployee) { - StopWatch stopWatch = new StopWatch("紙悟駈id鐚" + calculateParam.getSalaryAcctRecordId()); try { + log.info("綣紮悟V2 {}", calculateParam); + StopWatch stopWatch = new StopWatch("紙悟駈id鐚" + calculateParam.getSalaryAcctRecordId()); stopWatch.start("井紊"); // 1ヨ∵莎悟莅医 SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); @@ -825,6 +839,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe Map welfareColumns = getSIAccountService(user).welfareColumns(); // 7ヨ∵ゅ絖罧 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); + List variableItemPOS = getVariableItemService(user).listAll(); // 8ヨ√綣顓 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); @@ -851,21 +866,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(103378, "莎悟篋阪筝巡減腥")); } - - //悟絎 - List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); - Map acctResults = new HashMap<>(); - if (CollUtil.isNotEmpty(lockSalaryItemIds)) { - List acctResultPOS = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singleton(calculateParam.getSalaryAcctRecordId()), lockSalaryItemIds); - acctResults = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())).collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - } - List lockEmpIds = salaryAcctEmployeePOS.stream().filter(po -> LockStatusEnum.LOCK.getValue().equals(po.getLockStatus())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(lockEmpIds)) { - List acctResultPOS = listBySalaryAcctEmployeeIds(lockEmpIds); - Map acctResultMaps = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - acctResults.putAll(acctResultMaps); - } - stopWatch.stop(); stopWatch.start("悟"); @@ -873,7 +873,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe ProgressDTO initProgress = new ProgressDTO().setTitle(SalaryI18nUtil.getI18nLabel(97515, "悟筝")).setTitleLabelId(97515L).setTotalQuantity(salaryAcctEmployeePOS.size() * 2 + 1).setCalculatedQuantity(0).setProgress(BigDecimal.ZERO).setStatus(true).setMessage(StringUtils.EMPTY); getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), initProgress); // 12絲壕莎悟篋阪菴茵 - List> partition = Lists.partition(salaryAcctEmployeePOS, 100); + String personNumberInOneThread = new BaseBean().getPropValue("hrmSalaryCustom", "personNumberInOneThread"); + int size = 100; + if (StringUtils.isNotBlank(personNumberInOneThread)) { + size = Integer.parseInt(personNumberInOneThread); + } + List> partition = Lists.partition(salaryAcctEmployeePOS, size); // 12.1ァ絖膾睡篁糸≧ц CountDownLatch childMonitor = new CountDownLatch(partition.size()); // 12.2莅医絖膾睡ц膸 @@ -889,8 +894,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .setSalarySobPO(salarySobPO) .setSalarySobCycleDTO(salarySobCycleDTO) .setOtherSalaryAcctRecordPOS(otherSalaryAcctRecordPOS) - .setSalaryAcctLockResultPOS(MapUtils.emptyIfNull(acctResults)) - .setLockSalaryItemIds(lockSalaryItemIds) .setSalarySobItemPOS(salarySobItemPOS) .setSalaryItemIdWithPriorityList(salarySobItemsWithPriority) .setExpressFormulas(expressFormulas) @@ -903,6 +906,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .setChildMonitor(childMonitor) .setResults(calculateResults) .setCalculateKey(calculateKey) + .setVariableItems(variableItemPOS) .setTaxDeclarationFunction(taxDeclarationFunction) .setTaxIds(taxIds); List finalSalarySobBackItems = salarySobBackItems; @@ -940,6 +944,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // Thread.sleep(10); getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true); + //贋域莎悟莅医篏ユ + getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(),new Date()); + stopWatch.stop(); log.info(stopWatch.prettyPrint()); @@ -1006,6 +1013,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe Map welfareColumns = getSIAccountService(user).welfareColumns(); // 7ヨ∵ゅ絖罧 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); + List variableItemPOS = getVariableItemService(user).listAll(); // 8ヨ√綣顓 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); @@ -1041,21 +1049,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(103378, "莎悟篋阪筝巡減腥")); } - //悟絎 - List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); - Map acctResults = new HashMap<>(); - if (CollUtil.isNotEmpty(lockSalaryItemIds)) { - List acctResultPOS = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singleton(salaryAcctRecordId), lockSalaryItemIds); - acctResults = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())).collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - } - List lockEmpIds = salaryAcctEmployeePOS.stream().filter(po -> LockStatusEnum.LOCK.getValue().equals(po.getLockStatus())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(lockEmpIds)) { - List acctResultPOS = listBySalaryAcctEmployeeIds(lockEmpIds); - Map acctResultMaps = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); - acctResults.putAll(acctResultMaps); - } - - // 11.1紮菴綺 ProgressDTO initProgress = new ProgressDTO().setTitle(SalaryI18nUtil.getI18nLabel(97515, "悟筝")).setTitleLabelId(97515L).setTotalQuantity(salaryAcctEmployeePOS.size() * 2 + 1).setCalculatedQuantity(0).setProgress(BigDecimal.ZERO).setStatus(true).setMessage(StringUtils.EMPTY); getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.AFTER_TAXA_CCT_PROGRESS + salaryAcctRecordId, initProgress); @@ -1076,8 +1069,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .setSalarySobPO(salarySobPO) .setSalarySobCycleDTO(salarySobCycleDTO) .setOtherSalaryAcctRecordPOS(otherSalaryAcctRecordPOS) - .setSalaryAcctLockResultPOS(MapUtils.emptyIfNull(acctResults)) - .setLockSalaryItemIds(lockSalaryItemIds) .setSalarySobItemPOS(salarySobItemPOS) .setSalaryItemIdWithPriorityList(salarySobItemsWithPriority) .setExpressFormulas(expressFormulas) @@ -1090,6 +1081,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .setChildMonitor(childMonitor) .setResults(calculateResults) .setCalculateKey(calculateKey) + .setVariableItems(variableItemPOS) .setTaxDeclarationFunction(taxDeclarationFunction) .setTaxIds(taxIds); List finalSalarySobBackItems = salarySobBackItems; @@ -1211,13 +1203,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salaryAcctResultPOS = SalaryAcctResultBO.convert2ResultPO(salaryAcctResultTempPOS); batchSave(salaryAcctResultPOS); sw.stop(); - new Thread() { - public void run() { - //篆絖悟ヨ;井 - List salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2ReportPO(salaryAcctResultTempPOS, calculateParam.getEmps()); - getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); - } - }.start(); // よ莎悟筝贋九茵筝井 sw.start("紊悟井鐚よ莎悟筝贋九茵筝井"); getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey); @@ -1275,13 +1260,32 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // return salaryAcctEmployeeService.filterByAuthority(salaryAcctEmployees, employeeId); // } + + @Override + public void lock(SalaryAcctResultLockParam param) { + ValidUtil.doValidator(param); + + SalaryAcctEmployeePO salaryAcctEmployeePO = getSalaryAcctEmployeeService(user).getById(param.getAcctEmpId()); + if (salaryAcctEmployeePO == null) { + return; + } + + List lockItemIds = salaryAcctEmployeePO.getLockItems() == null ? new ArrayList<>() : salaryAcctEmployeePO.getLockItems(); + Long salaryItemId = param.getSalaryItemId(); + + if (param.getLockStatus() == LockStatusEnum.LOCK) { + lockItemIds.add(salaryItemId); + } else { + lockItemIds.removeIf(salaryItemId::equals); + } + + salaryAcctEmployeePO.setLockItems(Lists.newArrayList(new HashSet(lockItemIds))); + + getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO); + } + @Override public void updateLockStatusByParam(SalaryAcctResultUpdateLockStatusParam updateParam) { - // ヨ∵莎悟莅医 - SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(updateParam.getSalaryAcctRecordId()); - if (CollectionUtils.isEmpty(salaryAcctRecord.getLockSalaryItemIds())) { - salaryAcctRecord.setLockSalaryItemIds(new ArrayList<>()); - } List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(updateParam.getSalaryAcctRecordId()); if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return; @@ -1293,15 +1297,18 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } else { salaryItemIds = Collections.singleton(updateParam.getSalaryItemId()); } - if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { - Set lockSalaryItemIds = new HashSet<>(); - lockSalaryItemIds.addAll(salaryAcctRecord.getLockSalaryItemIds()); - lockSalaryItemIds.addAll(salaryItemIds); - salaryAcctRecord.setLockSalaryItemIds(new ArrayList(lockSalaryItemIds)); - } else { - salaryAcctRecord.getLockSalaryItemIds().removeAll(salaryItemIds); - } - getSalaryAcctRecordService(user).updateLockSalaryItemIds(salaryAcctRecord); + + salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { + List lockItemIds = salaryAcctEmployeePO.getLockItems() == null ? new ArrayList<>() : salaryAcctEmployeePO.getLockItems(); + + if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { + lockItemIds.addAll(salaryItemIds); + } else { + lockItemIds.removeAll(salaryItemIds); + } + salaryAcctEmployeePO.setLockItems(Lists.newArrayList(new HashSet(lockItemIds))); + getSalaryAcctEmployeeService(user).lock(salaryAcctEmployeePO); + }); } @@ -1331,7 +1338,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) { return Collections.emptyList(); } - List> partition = Lists.partition((List) salaryAcctEmployeeIds, 200); + List> partition = Lists.partition(salaryAcctEmployeeIds, 200); List result = new ArrayList<>(); partition.forEach(empIds -> { SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build(); @@ -1444,30 +1451,30 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } // ヨ; - SalaryAcctResultReportPO po = SalaryAcctResultReportPO.builder() - .id(IdGenerator.generate()) - .salarySobId(salaryAcctRecordPO.getSalarySobId()) - .salaryItemId(param.getSalaryItemId()) - .salaryAcctRecordId(param.getSalaryAcctRecordId()) - .salaryAcctEmpId(salaryAcctEmployeePO.getId().toString()) - .employeeId(salaryAcctEmployeePO.getEmployeeId().toString()) - .taxAgentId(salaryAcctEmployeePO.getTaxAgentId()) - .resultValue(param.getValue()) - .creator(Long.valueOf(user.getUID())) - .createTime(now) - .updateTime(now) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - DataCollectionEmployee dataCollectionEmployee = emps.get(salaryAcctEmployeePO.getEmployeeId()); - if (dataCollectionEmployee != null) { - po.setDepartmentId(dataCollectionEmployee.getDepartmentId()); - po.setSubcompanyId(dataCollectionEmployee.getSubcompanyid()); - po.setCostcenterId(dataCollectionEmployee.getCostcenterId()); - po.setJobtitleId(dataCollectionEmployee.getJobtitleId()); - po.setLocationId(dataCollectionEmployee.getLocationId()); - } - salaryAcctResultReportPOS.add(po); +// SalaryAcctResultReportPO po = SalaryAcctResultReportPO.builder() +// .id(IdGenerator.generate()) +// .salarySobId(salaryAcctRecordPO.getSalarySobId()) +// .salaryItemId(param.getSalaryItemId()) +// .salaryAcctRecordId(param.getSalaryAcctRecordId()) +// .salaryAcctEmpId(salaryAcctEmployeePO.getId().toString()) +// .employeeId(salaryAcctEmployeePO.getEmployeeId().toString()) +// .taxAgentId(salaryAcctEmployeePO.getTaxAgentId()) +// .resultValue(param.getValue()) +// .creator(Long.valueOf(user.getUID())) +// .createTime(now) +// .updateTime(now) +// .deleteType(NumberUtils.INTEGER_ZERO) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build(); +// DataCollectionEmployee dataCollectionEmployee = emps.get(salaryAcctEmployeePO.getEmployeeId()); +// if (dataCollectionEmployee != null) { +// po.setDepartmentId(dataCollectionEmployee.getDepartmentId()); +// po.setSubcompanyId(dataCollectionEmployee.getSubcompanyid()); +// po.setCostcenterId(dataCollectionEmployee.getCostcenterId()); +// po.setJobtitleId(dataCollectionEmployee.getJobtitleId()); +// po.setLocationId(dataCollectionEmployee.getLocationId()); +// } +// salaryAcctResultReportPOS.add(po); }); // ュ @@ -1480,8 +1487,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe batchSave(needInsertList); // ヨ;ュ - getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(param.getIdList(), Collections.singletonList(param.getSalaryItemId())); - getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); +// getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(param.getIdList(), Collections.singletonList(param.getSalaryItemId())); +// getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java index c79f314f8..219d971f6 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java @@ -63,10 +63,10 @@ public class SalaryAcctResultTemplateServiceImpl extends Service implements Sala } @Override - public List listBySalarySobId(Long salarySobId) { + public List listBySalarySobId(Long salarySobId,List types) { if (salarySobId == null) { return Collections.emptyList(); } - return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).build()); + return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).types(types).build()); } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java index 085abe60e..8eba89c7a 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import java.util.*; @@ -177,8 +178,19 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156474, "育莚鐚莎悟莅医筝絖綏画←")); } SalaryAcctSobConfigPO salaryAcctSobConfig = initBySalaryAcctRecord(salaryAcctRecord); - deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); + + String acctSobConfigFlag = getSalaryCacheService(user).get(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId); + if (acctSobConfigFlag != null && StringUtils.equals(acctSobConfigFlag, "TRUE")) { + return; + } + getSalaryCacheService(user).set(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId, "TRUE"); + + try { + deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); + getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); + } finally { + getSalaryCacheService(user).set(SalaryCacheKey.ACCT_SOB_CONFIG + salaryAcctRecordId, "FALSE"); + } } @Override diff --git a/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java new file mode 100644 index 000000000..648a08b79 --- /dev/null +++ b/src/com/engine/salary/service/impl/SalaryApprovalRuleServiceImpl.java @@ -0,0 +1,248 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.bo.SalaryApprovalBO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; +import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; +import com.engine.salary.mapper.salarysob.SalaryApprovalRuleMapper; +import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.ValidUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryApprovalRuleServiceImpl + * @date 2024/04/23 17:35 + * @description + */ +public class SalaryApprovalRuleServiceImpl extends Service implements SalaryApprovalRuleService { + + private SalaryApprovalRuleMapper getSalaryApprovalRuleMapper() { + return MapperProxyFactory.getProxy(SalaryApprovalRuleMapper.class); + } + + private SalaryAcctRecordMapper getSalaryAcctRecordMapper() { + return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalarySobItemService getSalarySobItemService(User user) { + return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + @Override + public List listAll() { + return getSalaryApprovalRuleMapper().listAll(); + } + + @Override + public SalaryApprovalRulePO getById(Long id) { + return getSalaryApprovalRuleMapper().getById(id); + } + + @Override + public int insertIgnoreNull(SalaryApprovalRulePO po) { + return getSalaryApprovalRuleMapper().insertIgnoreNull(po); + } + + @Override + public int update(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().update(salaryApprovalRule); + } + + @Override + public int updateIgnoreNull(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().updateIgnoreNull(salaryApprovalRule); + } + + @Override + public int delete(SalaryApprovalRulePO salaryApprovalRule) { + return getSalaryApprovalRuleMapper().delete(salaryApprovalRule); + } + + @Override + public SalaryApprovalRulePO getBySalarySobId(Long salarySobId) { + if(salarySobId == null) { + return null; + } + List salaryApprovalRulePOS = getSalaryApprovalRuleMapper().listSome(SalaryApprovalRulePO.builder().salarySobId(salarySobId).build()); + if (CollectionUtils.isNotEmpty(salaryApprovalRulePOS) && salaryApprovalRulePOS.size() == 1) { + return salaryApprovalRulePOS.get(0); + } + return null; + } + + @Override + public void deleteBySalarySobId(Long salarySobId) { + if (salarySobId == null) { + return; + } + getSalaryApprovalRuleMapper().deleteBySalarySobId(salarySobId); + } + + @Override + public SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam) { + // ヨ∵莎絎≧壕丞舟 + SalaryApprovalRulePO approvalRulePO = getBySalarySobId(queryParam.getSalarySobId()); + if (approvalRulePO == null) { + // 羃≧絎≧壕丞舟篆≧鐚綮咲莅よ丞舟篆≧ + Date now = new Date(); + approvalRulePO = SalaryApprovalRulePO.builder() + .id(IdGenerator.generate()) + .salarySobId(queryParam.getSalarySobId()) + .openApproval(0) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(0) + .build(); + // キ茣絅莎蕁合莅丞舟篆≧ + SalarySobItemAggregateDTO aggregateBySalarySobId = getSalarySobItemService(user).getAggregateBySalarySobId(queryParam.getSalarySobId()); + String setting = SalaryApprovalBO.sobItemAggregate2approvalGroupSetting(aggregateBySalarySobId); + approvalRulePO.setApprovalGroupSetting(setting); + insertIgnoreNull(approvalRulePO); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + return SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + } + + @Override + public void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO) { + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryApprovalDTO.getSalarySobId()); + if (salarySobPO == null) { + throw new RuntimeException("莎茣絅筝絖"); + } + // ゅョ + deleteBySalarySobId(salaryApprovalDTO.getSalarySobId()); + // 篆絖亥 + Date now = new Date(); + SalaryApprovalRulePO po = SalaryApprovalRulePO.builder() + .id(IdGenerator.generate()) + .salarySobId(salaryApprovalDTO.getSalarySobId()) + .openApproval(salaryApprovalDTO.getIsOpenApproval() ? 1 : 0) + .approvalGroupSetting(JsonUtil.toJsonString(salaryApprovalDTO.getApprovalItemGroup())) + .workflowUrl(salaryApprovalDTO.getApprovalWorkflowUrl()) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(0) + .build(); + insertIgnoreNull(po); + } + + @Override + public List listSalaryApprovalItem(SalaryItemSearchParam queryParam) { + List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(queryParam.getSalarySobId()); + List salaryItemIds = salarySobItemPOS.stream() + .filter(po -> !queryParam.getExcludeIds().contains(po.getSalaryItemId())) + .map(SalarySobItemPO::getSalaryItemId) + .collect(Collectors.toList()); + List salaryItemPOList = getSalaryItemService(user).listByIds(salaryItemIds); + return salaryItemPOList; + } + + @Override + public SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId) { + SalaryAcctRecordPO acctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (acctRecordPO == null) { + throw new SalaryRunTimeException("莎悟莅医筝絖綏画←"); + } + SalaryApprovalRulePO approvalRulePO = getBySalarySobId(acctRecordPO.getSalarySobId()); + + List salaryItemList = getSalaryItemService(user).listAll(); + SalaryApprovalDTO salaryApprovalDTO = SalaryApprovalBO.convert2DTO(approvalRulePO, salaryItemList); + // ヨ∽篁ユ悟膽莨(藥莅ゅ) + salaryApprovalDTO.setCanEdit(getRecordIsCanEdit(acctRecordPO)); + return salaryApprovalDTO; + } + + public boolean getRecordIsCanEdit(SalaryAcctRecordPO acctRecordPO) { + // 絎≧号糸鰹藥莅ゅ渇 + SalarySysConfPO approvalStatus = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_APPROVAL_STATUS); + if (approvalStatus == null || approvalStatus.getConfValue().equals("0")) { + return true; + } + // ヨ∽篁ユ悟膽莨(藥莅ゅ) + SalarySysConfPO canEdit = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_EDIT_RESULT_STATUS); + if (canEdit == null || canEdit.getConfValue().equals("1")) { + return true; + } else { + // 莎桁≧劫筝醇御鐚ゆ羌腮id絖 + if (StringUtils.isBlank(acctRecordPO.getApprovalId())) { + return true; + } else { + RecordSet rs = new RecordSet(); + rs.execute("SELECT * FROM workflow_requestbase where REQUESTID =" + acctRecordPO.getApprovalId()); + return !rs.next(); + } + } + } + + @Override + public void saveApprovalRequestId(ApprovalRequestSaveParam saveParam) { + ValidUtil.doValidator(saveParam); + // キ悟莅医篆≧ + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(saveParam.getSalaryAcctRecordId()); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("莎悟莅医筝絖綏画←"); + } + salaryAcctRecordPO.setApprovalId(saveParam.getRequestId()); + getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO); + } + + @Override + public void deleteBySalarySobIds(Collection ids) { + ids.stream().forEach(this::deleteBySalarySobId); + } + + @Override + public List listBySalarySobIds(Collection salarySobIds) { + if (CollectionUtils.isEmpty(salarySobIds)) { + return Collections.emptyList(); + } + return getSalaryApprovalRuleMapper().listSome(SalaryApprovalRulePO.builder().salarySobIds(salarySobIds).build()); + } +} diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index 42ee468d3..7b8cd9f13 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -592,7 +592,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 綮阪弱ラ荀井 SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).listType(param.getListType()).importType(param.getImportType()).description(param.getDescription()).build()); - + importHandleParam.setKeepStatus(param.getKeepStatus()); int total = 0; //excel井 diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 01b94c051..9e353083e 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.biz.SalaryArchiveItemBiz; import com.engine.salary.biz.SalaryItemBiz; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -28,6 +29,7 @@ import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; import com.engine.salary.mapper.salaryitem.SalaryItemMapper; import com.engine.salary.service.*; import com.engine.salary.sys.entity.vo.UploadConfigResponse; +import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryLoggerUtil; @@ -40,6 +42,7 @@ import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.User; @@ -705,7 +708,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi String userstatus = queryParam.getUserstatus(); r.setUsername(employee.getUsername()); r.setDepartmentName(employee.getDepartmentName()); - r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(employee.getStatus()))); + r.setEmployeeStatus(UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(NumberUtils.isCreatable(employee.getStatus()) ? employee.getStatus() : "-1"))); r.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(r.getAdjustReason())); return (StringUtils.isBlank(username) || employee.getUsername().contains(username)) && (CollectionUtils.isEmpty(departmentIds) || departmentIds.contains(employee.getDepartmentId())) @@ -738,7 +741,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi row.add(dto.getAdjustBefore()); row.add(dto.getAdjustAfter()); row.add(dto.getAdjustReason()); - row.add(dto.getEffectiveTime() + ""); + row.add(SalaryDateUtil.getFormatDate(dto.getEffectiveTime())); row.add(dto.getOperator()); row.add(format.format(dto.getOperateTime())); row.add(dto.getDescription()); @@ -807,4 +810,16 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return result; } + @Override + public List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange) { + if (CollectionUtils.isEmpty(salaryArchiveIds)) { + return Collections.emptyList(); + } + List resultList = new ArrayList<>(); + List> partition = Lists.partition(salaryArchiveIds, 1000); + partition.forEach(part -> { + resultList.addAll(getSalaryArchiveItemMapper().listByArchiveIdAndEffectiveTime(part, dateRange)); + }); + return resultList; + } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 1dec75968..a308120e2 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -78,6 +78,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_SECONDARY_ACCOUNT; import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; /** @@ -134,6 +135,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe return ServiceUtil.getService(SalarySobServiceImpl.class, user); } + //筝紙∴侃垽綣 + boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); + @Override public SalaryArchivePO getById(Long salaryArchiveId) { return salaryArchiveMapper.getById(salaryArchiveId); @@ -187,6 +191,19 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } List list = getSalaryArchiveMapper().list(queryParam); + + // 菴羯よユ + if (queryParam.getAdjustSalaryStartDate() != null || queryParam.getAdjustSalaryEndDate() != null) { + List salaryArchiveIds = list.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + LocalDateRange dateRange = LocalDateRange.builder().fromDate(queryParam.getAdjustSalaryStartDate()).endDate(queryParam.getAdjustSalaryEndDate()).build(); + List salaryArchiveItemPOList = getSalaryArchiveItemService(user).listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange); + List archiveIds = salaryArchiveItemPOList.stream().map(SalaryArchiveItemPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); + list = list.stream().filter(dto -> archiveIds.contains(dto.getId())).collect(Collectors.toList()); + } + + if (!openSecondaryAccount) { + list = list.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(list); } @@ -558,6 +575,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe map.put("id", e.getId()); map.put("username", e.getUsername()); map.put("employeeId", e.getEmployeeId()); + if (openSecondaryAccount) { + map.put("accountType", e.getAccountType() == null || e.getAccountType() == 0 ? "筝肢侃" : "罨∴侃"); + } // Optional> optionalTaxAgent = taxAgentData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); TaxAgentPO taxAgentPO = longTaxAgentPOMap.get(e.getTaxAgentId()); @@ -910,7 +930,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); diff --git a/src/com/engine/salary/service/impl/SalaryBillBaseSetServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillBaseSetServiceImpl.java index 392ddb58c..0a8220c6f 100644 --- a/src/com/engine/salary/service/impl/SalaryBillBaseSetServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillBaseSetServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.salaryBill.dto.salaryBillViewingLimitSetting; import com.engine.salary.entity.salaryBill.dto.SalaryBillWatermarkDTO; import com.engine.salary.entity.salaryBill.param.SalaryBaseSetSaveParam; import com.engine.salary.entity.salaryBill.po.SalaryBillWatermarkPO; +import com.engine.salary.enums.salarybill.MonthTypeEnum; import com.engine.salary.enums.salarybill.SalaryTemplateWatermarkTypeEnum; import com.engine.salary.service.SalaryBillBaseSetService; import com.engine.salary.service.SalaryBillWatermarkService; @@ -31,6 +32,7 @@ import weaver.hrm.User; import java.util.*; +import static com.engine.salary.enums.salarybill.MonthTypeEnum.SALARY_DATE; import static com.engine.salary.sys.constant.SalarySysConstant.*; /** @@ -113,6 +115,7 @@ public class SalaryBillBaseSetServiceImpl extends Service implements SalaryBillB salaryBillViewingLimitSetting salaryBillViewingLimitDTO = saveParam.getSalaryBillViewingLimitSetting(); if (salaryBillViewingLimitDTO != null) { getSalarySysConfService(user).saveSettingByType(Util.null2String(salaryBillViewingLimitDTO.getLimitMonth()), SALARY_BILL_VIEWING_LIMIT_MONTH, "綏ヨ倶ц丞舟", "billSend"); + getSalarySysConfService(user).saveSettingByType(salaryBillViewingLimitDTO.getMonthType()==null?"0":salaryBillViewingLimitDTO.getMonthType().getValue().toString(), SALARY_BILL_LIMIT_MONTH_TYPE, "綏ヨヨ∫倶篁順瓜", "billSend"); getSalarySysConfService(user).saveSettingByType(salaryBillViewingLimitDTO.getBurningAfterReadingMin() == null ? " " : salaryBillViewingLimitDTO.getBurningAfterReadingMin().toString(), SALARY_BILL_BURNING_AFTER_READING_MIN, "綏ヨョ罸莅丞舟", "billSend"); } return StringUtils.EMPTY; @@ -175,7 +178,14 @@ public class SalaryBillBaseSetServiceImpl extends Service implements SalaryBillB if (limitMonthSetting != null && NumberUtils.isNumber(limitMonthSetting.getConfValue())) { limitMonth = Integer.parseInt(limitMonthSetting.getConfValue()); } - return salaryBillViewingLimitSetting.builder().limitMonth(limitMonth).build(); + + SalarySysConfPO limitMonthType = getSalarySysConfService(user).getOneByCode(SALARY_BILL_LIMIT_MONTH_TYPE); + MonthTypeEnum monthType = SALARY_DATE; + if (limitMonthType != null && NumberUtils.isNumber(limitMonthType.getConfValue())) { + monthType = MonthTypeEnum.parseByValue(Integer.parseInt(limitMonthType.getConfValue())); + } + + return salaryBillViewingLimitSetting.builder().monthType(monthType).limitMonth(limitMonth).build(); } @Override diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 060f15cb2..4df8aa8f2 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -54,6 +54,7 @@ import weaver.hrm.User; import java.io.File; import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -377,9 +378,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService String remarkI18n = SalaryI18nUtil.getI18nLabel(140036, "乗贋"); if (StringUtils.isNotEmpty(salaryTemplate.getTextContent())) { - String yearI18n = SalaryI18nUtil.getI18nLabel(100325, "綛"); - String monthI18n = SalaryI18nUtil.getI18nLabel(100326, ""); - salaryTemplate.setTextContent(salaryTemplate.getTextContent().replace("${salaryMonth}", salaryMonth.getYear() + yearI18n + salaryMonth.getMonth() + monthI18n)); + salaryTemplate.setTextContent(salaryTemplate.getTextContent().replace("${salaryMonth}", new SimpleDateFormat("yyyy綛MM").format(salaryMonth))); } // 綏ヨ羂翫域丞舟 diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index ce08aca09..c1ca1c508 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSON; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; @@ -16,34 +17,42 @@ import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.hrm.dto.FieldSetting; import com.engine.salary.entity.hrm.po.ExpandFieldSettingsPO; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.hrm.ExpandFieldSettingsMapper; -import com.engine.salary.mapper.sys.SalarySysConfMapper; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SalarySobExtRangeService; import com.engine.salary.service.SalarySobRangeService; import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; 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 lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.conn.RecordSet; +import weaver.general.Util; import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_SECONDARY_ACCOUNT; + /** * 篋阪篆≧ *

Copyright: Copyright (c) 2022

@@ -57,6 +66,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee private EmployBiz employBiz = new EmployBiz(); + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + private EmployMapper getEmployMapper() { return SqlProxyHandle.getProxy(EmployMapper.class); } @@ -69,8 +82,8 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } - private SalarySysConfMapper getSalarySysConfMapper() { - return SqlProxyHandle.getProxy(SalarySysConfMapper.class); + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } @@ -91,6 +104,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee boolean openExtEmp = true; + //筝紙∴侃垽綣 + boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); + @Override public List listAll(UseEmployeeTypeEnum empType) { List result = new ArrayList<>(); @@ -104,6 +120,11 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee result.addAll(employBiz.listAll()); result.addAll(getExtEmpService(user).listEmployee()); } + + if (!openSecondaryAccount) { + result = result.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } + SalaryI18nUtil.i18nList(result); return result; } @@ -114,6 +135,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (openExtEmp) { result.addAll(getExtEmpService(user).listAllForReport()); } + if (!openSecondaryAccount) { + result = result.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } SalaryI18nUtil.i18nList(result); return result; } @@ -160,6 +184,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee includeSalaryEmployees.addAll(extEmps); } + + if (!openSecondaryAccount) { + includeSalaryEmployees = includeSalaryEmployees.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } SalaryI18nUtil.i18nList(includeSalaryEmployees); return includeSalaryEmployees; } @@ -173,6 +201,11 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (openExtEmp) { employeeList.addAll(getExtEmpService(user).getEmployeeByIds(ids)); } + + if (!openSecondaryAccount) { + employeeList = employeeList.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } + SalaryI18nUtil.i18nList(employeeList); return employeeList; } @@ -187,6 +220,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee result.addAll(getExtEmpService(user).getEmployeeByIds(ids)); } result.addAll(employBiz.getEmployeeByIdsAll(ids)); + if (!openSecondaryAccount) { + result = result.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } SalaryI18nUtil.i18nList(result); return result; } @@ -216,6 +252,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee employeeList.addAll(getExtEmpService(user).getEmployeeByIds(longs)); } } + + if (!openSecondaryAccount) { + employeeList = employeeList.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employeeList); } @@ -233,6 +273,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee employeeList.addAll(getExtEmpService(user).getEmployeeByIds(longs)); } } + + if (!openSecondaryAccount) { + employeeList = employeeList.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employeeList); } @@ -247,7 +291,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee employeeSameIds = employeeSameIds.stream() .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) .collect(Collectors.toList()); - + if (!openSecondaryAccount) { + employeeSameIds = employeeSameIds.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employeeSameIds); } @@ -273,7 +319,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee employees = employeeList.stream().filter(e -> (StringUtils.isBlank(idNo) || Objects.equals(e.getIdNo(), idNo))) .collect(Collectors.toList()); } - + if (!openSecondaryAccount) { + employees = employees.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employees); } @@ -286,7 +334,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee */ @Override public String empValidType() { - SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); + SalarySysConfPO salarySysConfPO = getSalarySysConfService(user).getOneByCode("matchEmployeeMode"); return (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; } @@ -347,6 +395,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (openExtEmp) { result.addAll(getExtEmpService(user).listEmployee()); } + if (!openSecondaryAccount) { + result = result.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(result); } @@ -384,7 +435,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee // 篁hrmresourcehrmresourcevirtual処キ育紊篋阪井鐚荀号篋阪idサ result = result.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(DataCollectionEmployee::getEmployeeId))), ArrayList::new)); - + if (!openSecondaryAccount) { + result = result.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return result; } @@ -429,6 +482,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee .forEach(e -> e.setExtendData(extendData)); } } + if (!openSecondaryAccount) { + employees = employees.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employees); } @@ -454,7 +510,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee String field = setting.getField(); String value = rs.getString(field); setting.setValue(value); - extendData.put(field, value); + extendData.put(field, Util.formatMultiLang(value)); }); String id = rs.getString(primaryKey); @@ -532,7 +588,11 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (CollectionUtils.isEmpty(virtualDepartmentIds)) { return Collections.emptyList(); } - return getEmployMapper().listVirtualEmpByVirtualDepIds(virtualDepartmentIds); + List employees = getEmployMapper().listVirtualEmpByVirtualDepIds(virtualDepartmentIds); + if (!openSecondaryAccount) { + employees = employees.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } + return employees; } @Override @@ -550,6 +610,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (openExtEmp) { employeeList.addAll(getExtEmpService(user).listBySubCompanyOrDepartment(subCompanyIds, departmentIds)); } + if (!openSecondaryAccount) { + employeeList = employeeList.stream().filter(e -> e.getAccountType() == null || e.getAccountType() == 0).collect(Collectors.toList()); + } return SalaryI18nUtil.i18nList(employeeList); } @@ -598,4 +661,50 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee } return SalaryI18nUtil.i18n(getEmployMapper().getJobCallInfoById(jobCallId)); } + + public List snapshot(List employeeIds, Date snapshotTime) { + + List currentEmployees = getEmployeeByIdsAll(employeeIds); + Map currentEmployeeMap = SalaryEntityUtil.convert2Map(currentEmployees, DataCollectionEmployee::getEmployeeId); + + List employees = employeeIds.stream() + .map(employeeId -> { + + List snapshot = getHrmSnapshotMapper().snapshot(employeeId, snapshotTime); + + return snapshot.stream().findFirst().map(hrmSnapshotPO -> DataCollectionEmployee. + builder() + .employeeId(employeeId) + .username(hrmSnapshotPO.getLastname()) + .departmentName(hrmSnapshotPO.getDepartmentname()) + .departmentId(hrmSnapshotPO.getDepartmentid() == null ? null : NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) + .subcompanyName(hrmSnapshotPO.getSubcompanyname()) + .subcompanyid(hrmSnapshotPO.getSubcompanyid1() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) + .costcenterId(hrmSnapshotPO.getCostcenterid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) + .locationId(hrmSnapshotPO.getLocationid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) + .jobtitleName(hrmSnapshotPO.getJobtitlename()) + .jobtitleId(hrmSnapshotPO.getJobtitle() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) + .companystartdate(hrmSnapshotPO.getCompanystartdate()) + .mobile(hrmSnapshotPO.getMobile()) +// .dismissdate() + .status(Util.null2String(hrmSnapshotPO.getStatus())) + .statusName(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(Util.null2String(hrmSnapshotPO.getStatus()), 1))) + .workcode(hrmSnapshotPO.getWorkcode()) + .sex(hrmSnapshotPO.getSex()) + .email(hrmSnapshotPO.getEmail()) + .telephone(hrmSnapshotPO.getTelephone()) + .jobcall(hrmSnapshotPO.getJobcallname()) + .jobcallId(hrmSnapshotPO.getJobcall() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) + .birthday(hrmSnapshotPO.getBirthday()) + .workYear(hrmSnapshotPO.getWorkyear() == null ? null : hrmSnapshotPO.getWorkyear().doubleValue()) + .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? null : hrmSnapshotPO.getCompanyworkyear().doubleValue()) + .idNo(hrmSnapshotPO.getCertificatenum()) + .accountTypeName(AccountTypeEnum.getDefaultLabelByValue(hrmSnapshotPO.getAccounttype())) + .accountType(hrmSnapshotPO.getAccounttype()) + .build()) + .orElse(currentEmployeeMap.get(employeeId)); + }).collect(Collectors.toList()); + + return SalaryI18nUtil.i18nList(employees); + } } diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 2fe2faa6b..00b8d6098 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -439,6 +439,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService List formulaVars = getSalaryFormulaService(user).listVarByFormulaIds(usingFormulaIds); List itemCode = formulaVars.stream() .map(FormulaVar::getFieldId) + .map(v -> v.replaceAll("variableItem_", "")) .map(v -> v.replaceAll("salaryItem_", "")) .map(v -> v.replaceAll("salaryArchives_", "")) .map(v -> v.replaceAll("ISSUED_", "")) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 33e914a26..30662220c 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -17,6 +17,7 @@ import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -40,17 +41,16 @@ 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.po.TaxAgentPO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; -import com.engine.salary.enums.salarybill.BillConfimStatusEnum; -import com.engine.salary.enums.salarybill.BillReadStatusEnum; -import com.engine.salary.enums.salarybill.SalarySendStatusEnum; -import com.engine.salary.enums.salarybill.SalaryTemplateReplenishRuleEnum; +import com.engine.salary.enums.salarybill.*; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.SQLMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; @@ -66,6 +66,7 @@ import com.engine.salary.util.SalaryDateUtil; 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.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -199,6 +200,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + private SQLMapper getSQLMapper() { + return MapperProxyFactory.getProxy(SQLMapper.class); + } + @Override public SalarySendPO getById(Long salarySendId) { return mapper.getById(salarySendId); @@ -480,9 +485,18 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (salarySendInfo == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "綏ヨ篆≧筝絖")); } + Long employeeId = salarySendInfo.getEmployeeId(); + if (currentEmployeeId.compareTo(employeeId) != 0) { - if (currentEmployeeId.compareTo(salarySendInfo.getEmployeeId()) != 0) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "綵茣垽羈ョ罩ゅ轡莎")); + //筝肢侃垸篁ユョ罨∴侃垸轡莎 + String sql = "select id from Hrmresource a where belongto= " + currentEmployeeId; + List belongtoIds = getSQLMapper().listLong(sql); + if (CollUtil.isNotEmpty(belongtoIds) && belongtoIds.contains(employeeId)) { + //user +// this.user = new User(new Integer(employeeId + "")); + } else { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "綵茣垽羈ョ罩ゅ轡莎")); + } } // キ藥莅ゆ─推拭 @@ -492,10 +506,18 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } //綏ヨョ倶 - Date limitMonth = getLimitMonth(); - if (limitMonth != null && limitMonth.after(salarySendInfo.getSalaryMonth())) { - salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "篁醇ョ" + salaryBillViewingLimitSetting.getLimitMonth() + "綏ヨ")); + salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); + Date limitMonth = getLimitMonth(salaryBillViewingLimitSetting); + if (limitMonth != null) { + if (salaryBillViewingLimitSetting.getMonthType() == MonthTypeEnum.SALARY_DATE) { + if (limitMonth.after(salarySendInfo.getSalaryMonth())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "篁醇ョ" + salaryBillViewingLimitSetting.getLimitMonth() + "綏ヨ")); + } + } else { + if (limitMonth.after(salarySendInfo.getSendTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "篁醇ョ" + salaryBillViewingLimitSetting.getLimitMonth() + "綏ヨ")); + } + } } // キ莅医薤罨≧ョ狗 @@ -555,7 +577,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // キ莎蕁合井 Long salaryAcctRecordId = salarySendInfo.getSalaryAcctRecordId(); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(currentEmployeeId).build()); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(employeeId).build()); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("莎悟膸筝絖鐚"); } @@ -634,16 +656,16 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); - DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(employeeId); SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); - salaryTemplate.setTheme(getBillTitle(salaryTemplate.getTheme(), salaryMonth, currentEmployeeId)); + salaryTemplate.setTheme(getBillTitle(salaryTemplate.getTheme(), salaryMonth, employeeId)); // 綏ヨ羂翫井 == 紊 - handleSalaryWatermark(salaryTemplate, salarySendInfo, currentEmployeeId); + handleSalaryWatermark(salaryTemplate, salarySendInfo, employeeId); map.put("salaryTemplate", salaryTemplate); map.put("salaryAcctResult", salaryAcctResultS); @@ -691,12 +713,16 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } - - private Date getLimitMonth() { - //綏ヨ倶 - salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); + //綏ヨ倶 + private Date getLimitMonth(salaryBillViewingLimitSetting salaryBillViewingLimitSetting) { if (salaryBillViewingLimitSetting.getLimitMonth() != 0) { - LocalDate localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()).withDayOfMonth(1); + MonthTypeEnum monthType = salaryBillViewingLimitSetting.getMonthType(); + LocalDate localDate; + if (monthType == MonthTypeEnum.SALARY_DATE) { + localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth() + 1).withDayOfMonth(1); + } else { + localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()); + } return SalaryDateUtil.localDateToDate(localDate); } return null; @@ -709,7 +735,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService * @param salaryTemplate * @param salarySendInfo */ - private void handleSalaryWatermark(SalaryTemplatePO salaryTemplate, SalarySendInfoPO salarySendInfo, Long currentEmployeeId) { + private void handleSalaryWatermark(SalaryTemplatePO salaryTemplate, SalarySendInfoPO salarySendInfo, Long employeeId) { SalaryBillWatermarkDTO salaryBillWatermark = JsonUtil.parseObject(salaryTemplate.getSalaryWatermark(), SalaryBillWatermarkDTO.class); if (Objects.isNull(salaryBillWatermark) || Boolean.FALSE.equals(salaryBillWatermark.getWatermarkStatus())) { return; @@ -723,7 +749,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService boolean needQueryEmp = (boolean) salaryBillWatermark.getWmSetting().getOrDefault("needQueryEmp", false); DataCollectionEmployee simpleEmployee = null; if (needQueryEmp) { - simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(currentEmployeeId); + simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(employeeId); } String wmText = salaryBillWatermark.getWmSetting().getOrDefault("wmText", StringUtils.EMPTY).toString(); @@ -796,11 +822,28 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public PageInfo mySalaryBillListPage(SalaryBillQueryParam queryParam) { - //綏ヨ倶 - queryParam.setStartSalaryMonth(getLimitMonth()); - List list = salarySendInfoMapper.mySalaryBillList(queryParam); - list.forEach(dto -> dto.setEmployeeId(Long.valueOf(user.getUID()))); + + //綏ヨ倶 + salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); + Date limitMonth = getLimitMonth(salaryBillViewingLimitSetting); + list = list.stream() + .filter(dto -> { + if (limitMonth != null) { + if (salaryBillViewingLimitSetting.getMonthType() == MonthTypeEnum.SALARY_DATE) { + return !limitMonth.after(dto.getSalaryYearMonth()); + } else { + return !limitMonth.after(dto.getSendTime()); + } + } + return true; + }) + .peek(dto -> { + dto.setEmployeeId((long) user.getUID()); + dto.setSalaryCode(AESEncryptUtil.encrypt4SalaryBill(String.valueOf(user.getUID()))); + }) + .collect(Collectors.toList()); + PageInfo pageInfo = new PageInfo<>(list, SalaryMySalaryBillListDTO.class); pageInfo.setTotal(list.size()); pageInfo.setPageNum(queryParam.getCurrent()); @@ -816,11 +859,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Set otherSalaryAcctRecordIds = null; if (queryParam.getMergeCountTax() != null && queryParam.getMergeCountTax()) { //ヨ√活檎id鐚菴莅や減筝罨≦上Û劫筝≧悟莅医 - Long salaryAccRecordId = - salarySendInfoMapper.listSalaryAccRecordIds(queryParam).stream().findFirst().orElse(null); + Long salaryAccRecordId = salarySendInfoMapper.listSalaryAccRecordIds(queryParam).stream().findFirst().orElse(null); // ヨ√綛区∞銀莎悟莅医 - List otherSalaryAcctRecordPOS = - getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAccRecordId); + List otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAccRecordId); if (CollectionUtils.isEmpty(otherSalaryAcctRecordPOS)) { return new PageInfo<>(); } @@ -831,8 +872,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } } List list = getSalarySendInfoMapper().detailList(queryParam, otherSalaryAcctRecordIds); - return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), - list, SalarySendDetailListDTO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySendDetailListDTO.class); } /** @@ -840,14 +880,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService * * @param theme * @param salaryMonth - * @param currentEmployeeId + * @param employeeId * @return */ - private String getBillTitle(String theme, Date salaryMonth, Long currentEmployeeId) { - String yearI18n = SalaryI18nUtil.getI18nLabel(100325, "綛"); - String monthI18n = SalaryI18nUtil.getI18nLabel(100326, ""); + private String getBillTitle(String theme, Date salaryMonth, Long employeeId) { String companyName = ""; - if (currentEmployeeId != null) { + if (employeeId != null) { ResourceComInfo resourceComInfo = null; SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); try { @@ -856,11 +894,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } catch (Exception e) { log.error("莎羣綣絽", e); } - companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(currentEmployeeId + "")); + companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(employeeId + "")); } - return theme - .replace("${companyName}", companyName) - .replace("${salaryMonth}", new SimpleDateFormat("yyyy綛MM").format(salaryMonth)); + return theme.replace("${companyName}", companyName) + .replace("${salaryMonth}", new SimpleDateFormat("yyyy綛MM").format(salaryMonth)) + .replace("${salaryYear}", new SimpleDateFormat("yyyy綛").format(salaryMonth)); } /** @@ -872,30 +910,7 @@ 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()); @@ -923,6 +938,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .birthday(simpleEmployee.getBirthday()) .departmentId(simpleEmployee.getDepartmentId()) .departmentName(simpleEmployee.getDepartmentName()) + .subcompanyId(simpleEmployee.getSubcompanyid()) .subcompanyName(simpleEmployee.getSubcompanyName()) .email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail()) .jobcall(simpleEmployee.getJobcall()) @@ -933,7 +949,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .jobtitleName(simpleEmployee.getJobtitleName()) .jobtitleId(simpleEmployee.getJobtitleId()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(),"1"))).getDefaultLabel()) + .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(), "1"))).getDefaultLabel()) + .accountTypeName(simpleEmployee.getAccountType() == null ? "" : AccountTypeEnum.parseByValue(simpleEmployee.getAccountType()).getDefaultLabel()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) .workcode(StringUtils.isEmpty(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()) @@ -1008,8 +1025,7 @@ 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.getEmployeeId().equals(e.getEmployeeId()) && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))).findFirst(); map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, optional.isPresent() ? optional.get().getResultValue() : ""); }); @@ -1026,8 +1042,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService * @return */ @Override - public List> buildDetailList(List list, - List salaryAcctEmployees, List salaryAcctResultValues) { + public List> buildDetailList(List list, List salaryAcctEmployees, List salaryAcctResultValues) { List> listMaps = new ArrayList<>(); if (CollectionUtils.isEmpty(list)) { return listMaps; @@ -1124,19 +1139,15 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } // 罩e幻罔≧ if (!isReplenish && StringUtils.isNotEmpty(salaryTemplate.getSalaryItemSetting())) { - List salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getSalaryItemSetting(), - SalaryTemplateSalaryItemSetListDTO.class); + List salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> { salaryItems.addAll(e.getItems()); }); } // 茵ュ罔≧ if (isReplenish && StringUtils.isNotEmpty(salaryTemplate.getReplenishSalaryItemSetting())) { - List salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getReplenishSalaryItemSetting(), - SalaryTemplateSalaryItemSetListDTO.class); - salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> - salaryItems.addAll(e.getItems()) - ); + List salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); + salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> salaryItems.addAll(e.getItems())); } return salaryItems; } @@ -1152,8 +1163,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (param.getSalarySendRangeIds() != null) { //絋篌篋id鐚篏睡id - ids = getSalarySendRangeService(user) - .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT); + ids = getSalarySendRangeService(user).getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT); if (ids.isEmpty()) {// 延ュ堺ユ腥榊鐚篌絲取翫常罩よ茵 throw new SalaryRunTimeException("綏ヨ乗翫羃≧拷綏"); } @@ -1333,64 +1343,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } -// /** -// * 羔 -// * -// * @param salarySend -// * @param enableSendList -// * @param salaryTemplate -// * @param currentTenantKey -// */ -// private void sendMessage(SalarySendPO salarySend, List> enableSendList, SalaryTemplatePO salaryTemplate, String tenantName) { -// if (StringUtils.isNotBlank(salaryTemplate.getBackground())) { -// FileData fileByte = fileDownloadClient.getFileByte(Long.valueOf(salaryTemplate.getBackground()), currentTenantKey); -// String encode = Base64Encoder.encode(fileByte.getData()); -// salaryTemplate.setBackground(encode); -// } -// // 膊掩綣 -// boolean isEmailOpen = salaryTemplate.getEmailStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()); -// -// LocalDate salaryMonth = salarySend.getSalaryMonth(); -// String yearI18n = SalaryI18nUtil.getI18nLabel( 100325, "綛"); -// String monthI18n = SalaryI18nUtil.getI18nLabel( 100326, ""); -// String text = salaryMonth.getYear() + -// yearI18n + -// salaryMonth.getMonth().getValue() + -// monthI18n + -// SalaryI18nUtil.getI18nLabel( 100520, "綏ヨ緇膸"); -// -// UserEntity sendUser = null; -// // 蘂 -// String title = getBillTitle(salaryTemplate.getTheme(), salaryMonth, tenantName); -// -// // キ篋阪篆≧ -// List ids = enableSendList.stream().map(e->Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList()); -// List allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey); -// List listDTOS = JSONArray.parseArray(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); -// Optional optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst(); -// SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null); -// Map employeeField = SalaryAcctResultBO.buildEmployeeFieldName(); -// enableSendList.forEach(e -> { -// Optional optionalSimpleEmployee = allEmployees.stream().filter(f->f.getEmployeeId().equals(Long.valueOf(e.get("employeeId").toString()))).findFirst(); -// if (optionalSimpleEmployee.isPresent()) { -// buildEmployeeInfo(employeeInformation, optionalSimpleEmployee.get(), e.get("taxAgent").toString(), employeeField); -// } -// -// List receivers = Collections.singletonList( -// SalarySendBO.buildUser(Long.valueOf(e.get("employeeId").toString()), e.get("email") == null ? "" : e.get("email").toString(), currentTenantKey)); -// Entity entity = SalarySendBO.buildEntity(e.get("id").toString(), SalaryI18nUtil.getI18nLabel( 94626, "綏ヨ")); -// EmailEntity emailInfo = new EmailEntity(); -// // 膊掩綣 -// if (isEmailOpen) { -// String emailContent = SalarySendBO.buildEmailContent(e, employeeInformation, title, salaryTemplate); -// emailInfo = SalarySendBO.buildEmailInfo(text, emailContent, salaryTemplate.getSendEmailId()); -// } -// SendMessageEntity message = SalarySendBO.buildSendMessageEntity(text, sendUser, receivers, entity, emailInfo); -// log.info("綣紮============:{}", JsonUtil.toJsonString(message)); -// // 綣紮 -// log.info("膸===:{}", JsonUtil.toJsonString(asyncSystemMessageRest.sendMsg(message))); -// }); -// } @Override public Map withdraw(SalarySendWithdrawParam param) { @@ -1404,8 +1356,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // キゅ綏ヨ if (param.getSalarySendRangeIds() != null) { //絋篌篋id鐚篏睡idゅ - ids = getSalarySendRangeService(user) - .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.WITHDRAW); + ids = getSalarySendRangeService(user).getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.WITHDRAW); if (ids.isEmpty()) {// 延ュ堺ユ腥榊鐚篌絲取翫常罩よ茵 throw new SalaryRunTimeException("綏ヨゅ翫羃≧拷綏"); } @@ -1474,6 +1425,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public XSSFWorkbook exportInfoList(SalarySendInfoQueryParam queryParam) { + // ♂ + SalarySendInfoQueryParam.checkParam(queryParam); + // 1.綏ヤ膂水腱 String sheetName = SalaryI18nUtil.getI18nLabel(100528, "綏ヨ鞘拭"); List header = new ArrayList<>(); @@ -1483,14 +1437,24 @@ public class SalarySendServiceImpl extends Service implements SalarySendService header.add(SalaryI18nUtil.getI18nLabel(86186, "阪")); header.add(SalaryI18nUtil.getI18nLabel(86317, "綏ュ")); header.add(SalaryI18nUtil.getI18nLabel(86317, "倶")); - + SalarySendPO salarySendPO = getById(queryParam.getSalarySendId()); + if (salarySendPO == null) { + throw new SalaryRunTimeException("綏ヨ筝絖"); + } + List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySendPO.getSalarySobId())); + if (CollectionUtils.isEmpty(salaryTemplates)) { + throw new SalaryRunTimeException("莚桁莅丞舟綏ヨ罔≧"); + } + Integer ackFeedbackStatus = salaryTemplates.get(0).getAckFeedbackStatus(); + Integer feedbackStatus = salaryTemplates.get(0).getFeedbackStatus(); + if ((ackFeedbackStatus != null && NumberUtils.compare(ackFeedbackStatus, 1) == 0) + || (feedbackStatus != null && NumberUtils.compare(feedbackStatus, 1) == 0)) { + header.add(SalaryI18nUtil.getI18nLabel(0, "ョ倶")); + header.add(SalaryI18nUtil.getI18nLabel(0, "隋莅ょ倶")); + } List> rows = new ArrayList<>(); // 2.茵紊 rows.add(header); - - // ♂ - SalarySendInfoQueryParam.checkParam(queryParam); - // キ茵井 //綺臀 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); @@ -1501,7 +1465,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService list.forEach(e -> { // 丞倶 e.setSendStatus(SalarySendStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getSendStatus()))); - + // ョ倶 + e.setBillReadStatus(NumberUtils.isCreatable(e.getBillReadStatus()) ? BillReadStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getBillReadStatus())) : ""); + // 隋莅ょ倶 + e.setBillConfirmStatus(NumberUtils.isCreatable(e.getBillConfirmStatus()) ? BillConfimStatusEnum.getDefaultLabelByValue(Integer.valueOf(e.getBillConfirmStatus())) : ""); //紊篋阪 if (Objects.equals(e.getEmployeeType(), 1)) { List employees = idEmpMap.getOrDefault(e.getEmployeeId(), new ArrayList<>()); @@ -1525,6 +1492,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService row.add(dto.getMobile()); row.add(dto.getJobNum()); row.add(dto.getSendStatus()); + if ((ackFeedbackStatus != null && NumberUtils.compare(ackFeedbackStatus, 1) == 0) + || (feedbackStatus != null && NumberUtils.compare(feedbackStatus, 1) == 0)) { + row.add(dto.getBillReadStatus()); + row.add(dto.getBillConfirmStatus()); + } rows.add(row); } @@ -1578,7 +1550,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService header.add(SalaryI18nUtil.getI18nLabel(86317, "綏ュ")); Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX); List sortedSalaryItems = new ArrayList<>(); - for(String column : queryParam.getColumns()) { + for (String column : queryParam.getColumns()) { if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) { SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column); if (salaryTemplateSalaryItemListDTO != null) { @@ -1679,8 +1651,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService SalaryAcctResultQueryParam queryParam = SalaryAcctResultQueryParam.builder().salaryAcctRecordId(salarySendPO.getSalaryAccountingId()).build(); // ヨ∵莎悟篋阪 - List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user) - .listByResultQueryParam(queryParam); + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam); if (org.apache.commons.collections4.CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { return Collections.emptyMap(); @@ -1712,13 +1683,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Map map = new HashMap<>(); Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId); salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> { - BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId())) - .orElse(new ArrayList<>()) - .stream() - .map(SalaryAcctResultPO::getResultValue) - .filter(NumberUtils::isCreatable) - .map(BigDecimal::new) - .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId())).orElse(new ArrayList<>()).stream().map(SalaryAcctResultPO::getResultValue).filter(NumberUtils::isCreatable).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); map.put(item.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap)); }); return map; @@ -1812,8 +1777,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public List listUnConfirmedSendInfo(List salarySobIds) { - if (CollectionUtils.isEmpty(salarySobIds)) - return Collections.emptyList(); + if (CollectionUtils.isEmpty(salarySobIds)) return Collections.emptyList(); return getSalarySendInfoMapper().listUnConfirmedSendInfo(salarySobIds); } @@ -1914,18 +1878,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService List itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList()); List> finalSalaryAcctResultS = salaryAcctResultS; itemSetListDTOS.stream().forEach(item -> { - item.getItems() - .forEach(e -> { - if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) { - e.setSalaryItemValue(""); - } else { - Object o = finalSalaryAcctResultS.stream() - .filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst() - .orElse(new HashMap<>()) - .get("resultValue"); - e.setSalaryItemValue(o == null ? "" : (String) o); - } - }); + item.getItems().forEach(e -> { + if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) { + e.setSalaryItemValue(""); + } else { + Object o = finalSalaryAcctResultS.stream().filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst().orElse(new HashMap<>()).get("resultValue"); + e.setSalaryItemValue(o == null ? "" : (String) o); + } + }); }); @@ -1946,10 +1906,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (Objects.equals(1, salaryTemplate.getSalaryItemZeroStatus())) { for (SalaryTemplateSalaryItemSetListDTO itemSetListDTO : itemSetListDTOS) { List items = itemSetListDTO.getItems(); - List collect = items.stream() - .filter(item -> SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue()) == null - || BigDecimal.ZERO.compareTo(SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue())) != 0) - .collect(Collectors.toList()); + List collect = items.stream().filter(item -> SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue()) == null || BigDecimal.ZERO.compareTo(SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue())) != 0).collect(Collectors.toList()); itemSetListDTO.setItems(collect); } } @@ -1968,7 +1925,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("salaryAcctResult", salaryAcctResultS); // 綏ヨ隋莅ゆ - if (NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0) { + if (salaryTemplate.getAckFeedbackStatus() != null && NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0) { // 綣篋綏ヨ隋莅 Integer ackStatus = salarySendInfo.getBillConfirmStatus(); if (ackStatus == null || ackStatus != BillConfimStatusEnum.CONFIRMED.getValue()) { @@ -1983,7 +1940,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 綏ヨ薤 - if (NumberUtils.compare(salaryTemplate.getFeedbackStatus(), 1) == 0) { + if (salaryTemplate.getFeedbackStatus() != null && NumberUtils.compare(salaryTemplate.getFeedbackStatus(), 1) == 0) { // 綣篋綏ヨ薤 Integer confirmStatus = salarySendInfo.getBillConfirmStatus(); map.put("showFeedback", "1"); diff --git a/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java index 0a4b06cb4..185964526 100644 --- a/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobRangeServiceImpl.java @@ -4,10 +4,10 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrm.biz.OrganizationShowSetBiz; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.biz.SalarySobRangeBiz; import com.engine.salary.biz.SpecialAddDeductionBiz; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.PositionInfo; @@ -41,6 +41,7 @@ import com.engine.salary.util.excel.ExcelParseHelper; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -198,6 +199,43 @@ public class SalarySobRangeServiceImpl extends Service implements SalarySobRange SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); } + @Override + public void edit(SalarySobRangeSaveParam param) { + ValidUtil.doValidator(param, RuntimeTypeEnum.UPDATE); + + // ヨ∵莎茣絅 + SalarySobPO salarySobPO = getSalarySobService(user).getById(param.getSalarySobId()); + if (Objects.isNull(salarySobPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "育莚鐚莎茣絅筝絖綏画←")); + } + + deleteByIds(Collections.singleton(param.getId())); + + // ヨ√群篋阪 + List salarySobRangePOS = listBySalarySobIdAndIncludeType(param.getSalarySobId(), param.getIncludeType()); + // 紊筝筝罨∞篆絖逸絋ユ兄菴絲劫篋阪鐚//絏篏鐚鐚d罨>荀医鐚Ū荀贋逸 + SalarySobRangeSaveBO.Result result = SalarySobRangeSaveBO.handle(salarySobRangePOS, param, (long) user.getUID(), false); + // 篆絖 + if (CollectionUtils.isNotEmpty(result.getNeedInsertSalarySobRanges())) { + salarySobRangeBiz.batchInsert(result.getNeedInsertSalarySobRanges()); + } + if (CollectionUtils.isNotEmpty(result.getNeedUpdateSalarySobRanges())) { + result.getNeedUpdateSalarySobRanges().forEach(e -> salarySobRangeBiz.updateById(e)); + } + //莅医ュ + String operateTypeName = Objects.equals(param.getIncludeType(), 1) ? + SalaryI18nUtil.getI18nLabel(0, "活篋阪贋医絲壕院") : SalaryI18nUtil.getI18nLabel(0, "篁岩賢ゆ医絲壕院"); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId("" + salarySobPO.getId()); + loggerContext.setTargetName(salarySobPO.getName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(operateTypeName); + loggerContext.setOperatedesc(operateTypeName); + loggerContext.setNewValues(param); + SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); + } + @Override public void deleteByIds(Collection ids) { // ヨ∵莎茣絅篋阪 diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 69660704f..3a2d3ebec 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -163,6 +163,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + private SalarySobInitService getSalarySobInitService(User user) { return ServiceUtil.getService(SalarySobInitServiceImpl.class, user); } @@ -671,7 +675,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { getSalarySobBackItemService(user).deleteBySalarySobIds(ids); // よ莎茣絅♂茹 getSalarySobCheckRuleService(user).deleteBySalarySobIds(ids); - // 莅医ュ + // よ莎絎≧壕 + getSalaryApprovalRuleService(user).deleteBySalarySobIds(ids); + // 莅医ュ salarySobPOS.forEach(salarySobPO -> { LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java new file mode 100644 index 000000000..16771e0ea --- /dev/null +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -0,0 +1,448 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.cloudstore.eccom.constant.WeaBoolAttr; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; +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.po.TaxAgentPO; +import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.common.SharedTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.setting.PageLinkMapper; +import com.engine.salary.mapper.setting.PageListSettingMapper; +import com.engine.salary.mapper.setting.PageListTemplateMapper; +import com.engine.salary.report.common.constant.SalaryConstant; +import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SettingService; +import com.engine.salary.service.TaxAgentService; +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.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; + +/** + * 蕁級∽丞ず + *

Copyright: Copyright (c) 2022

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public class SettingServiceImpl extends Service implements SettingService { + + private PageListSettingMapper getPageListSettingMapper() { + return MapperProxyFactory.getProxy(PageListSettingMapper.class); + } + + private PageListTemplateMapper getPageListTemplateMapper() { + return MapperProxyFactory.getProxy(PageListTemplateMapper.class); + } + + private PageLinkMapper getPageLinkMapper() { + return MapperProxyFactory.getProxy(PageLinkMapper.class); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private TaxAgentService getTaxAgentService() { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + @Override + public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) { + ValidUtil.doValidator(pageListSettingSaveParam); + + Date now = new Date(); + + //篆絖藥莅よ丞舟 + Integer defaultSetting = pageListSettingSaveParam.getDefaultSetting(); + PageListSettingPO pageListSettingPO; + if (defaultSetting == 0) { + pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage(), defaultSetting, (long) user.getUID()); + } else { + pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage(), defaultSetting, null); + } + + List checked = pageListSettingSaveParam.getSetting().stream().distinct().collect(Collectors.toList()); + if (pageListSettingPO != null) { + pageListSettingPO.setSetting(checked); + pageListSettingPO.setUpdateTime(now); + getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); + } else { + pageListSettingPO = PageListSettingPO.builder().id(IdGenerator.generate()).page(pageListSettingSaveParam.getPage()).setting(checked).defaultSetting(defaultSetting).creator((long) user.getUID()).createTime(now).updateTime(now).deleteType(0).tenantKey(DEFAULT_TENANT_KEY).build(); + getPageListSettingMapper().insertIgnoreNull(pageListSettingPO); + } + } + + @Override + public PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param) { + String page = param.getPage(); + if (SALARY_DETAILS_REPORT.getValue().equals(page)) { + List columns = new ArrayList<>(); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "莎絮"), "salaryMonth")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "筝腮g軸箙>査"), "taxAgent")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "茣絅"), "salarySob")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "紮"), "userName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, ""), "subCompany")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, ""), "department")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "絏篏"), "jobTitle")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ョ倶"), "status")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ュ"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "ヨユ"), "companystartdate")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "罨≧"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); + if (StrUtil.isNotBlank(param.getName())) { + columns = columns.stream().filter(column -> column.getText().contains(param.getName())).collect(Collectors.toList()); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + List collect = salaryItemList.stream().filter(po -> { + String name = param.getName(); + if (StrUtil.isNotEmpty(name)) { + return po.getName() != null && po.getName().contains(name); + } + return true; + }).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); + } + }).map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)).collect(Collectors.toList()); + + columns.addAll(collect); + + Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); + + //藥莅よ丞舟 + PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page, 1, null); + + //ヨ∫筝蕁合 + List checkedList = new ArrayList<>(); + if (pageListSettingPO != null) { + checkedList = Optional.ofNullable(pageListSettingPO.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); + } else { + checkedList = columns; + } + return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build(); + } + + return PageListTemplateDetailDTO.builder().setting(new ArrayList<>()).checked(new ArrayList<>()).build(); + } + + @Override + public void resetPageListSetting(PageListSettingResetParam param) { + ValidUtil.doValidator(param); + + String page = param.getPage(); + + //筝篋肴丞舟 + PageListSettingPO selfSetting = getPageListSettingMapper().getByPage(page, 0, (long) user.getUID()); + + if (selfSetting != null) { + getPageListSettingMapper().delete(selfSetting); + } + } + + @Override + public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) { + String page = param.getPage(); + if (SALARY_DETAILS_REPORT.getValue().equals(page)) { + List columns = new ArrayList<>(); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "莎絮"), "salaryMonth")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "筝腮g軸箙>査"), "taxAgent")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "茣絅"), "salarySob")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "紮"), "userName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, ""), "subCompany")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, ""), "department")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "絏篏"), "jobTitle")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ョ倶"), "status")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "綏ュ"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "莚篁九埇"), "idNo")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "ヨユ"), "companystartdate")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "罨≧"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); + if (StrUtil.isNotBlank(param.getName())) { + columns = columns.stream().filter(column -> column.getText().contains(param.getName())).collect(Collectors.toList()); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + List salaryItemCols = salaryItemList.stream().filter(po -> { + String name = param.getName(); + if (StrUtil.isNotEmpty(name)) { + return po.getName() != null && po.getName().contains(name); + } + return true; + }).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); + } + }).map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)).collect(Collectors.toList()); + + columns.addAll(salaryItemCols); + + Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); + List checkedList = columns; + Long id = param.getId(); + if (id != null) { + //膽莨罔≧随絎罔≧id + PageListTemplatePO po = getPageListTemplateMapper().getById(id); + if (po != null) { + checkedList = Optional.ofNullable(po.getSetting()).orElse(new ArrayList<>()).stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); + } + } else { + //綣筝罔≧ + List pageListTemplates = getPageListTemplates(PageListTemplateQueryParam.builder().page(page).build()); + List columnList = pageListTemplates.stream() + .filter(PageListTemplatePO::getChecked).map(PageListTemplatePO::getSetting).findFirst().orElse(new ArrayList<>()) + .stream().map(s -> columnMap.getOrDefault(s, new WeaTableColumn())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(columnList)) { + checkedList = columnList; + } + } + return PageListTemplateDetailDTO.builder().setting(columns).checked(checkedList).build(); + } + + return PageListTemplateDetailDTO.builder().build(); + } + + @Override + public List getPageListTemplates(PageListTemplateQueryParam param) { + + ValidUtil.doValidator(param); + + Date now = new Date(); + String page = param.getPage(); + + //筝篋咲臀罔≧ + PageListTemplatePO build = PageListTemplatePO.builder().page(page).build(); + List pos = getPageListTemplateMapper().listSome(build); + + //絋ヤ遺亥鎧膸罔≧随綮榊鎧膸罔≧ + PageListTemplatePO systemTemplate = pos.stream().filter(po -> po.getSystemType() != null && po.getSystemType() == 1).findFirst().orElse(null); + if (systemTemplate == null) { + //ヨ∝鎧膸藥莅ら臀 + PageListTemplateDetailDTO pageListSetting = getDefaultPageListSetting(PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build()); + + systemTemplate = PageListTemplatePO.builder() + .id(IdGenerator.generate()) + .page(param.getPage()) + .name("膤紫罔≧") + .sharedType(SharedTypeEnum.PUBLIC.getValue()) + .systemType(SalaryOnOffEnum.ON.getValue()) + .setting(pageListSetting.getChecked().stream().map(WeaTableColumn::getColumn).collect(Collectors.toList())) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY).build(); + getPageListTemplateMapper().insertIgnoreNull(systemTemplate); + pos.add(systemTemplate); + } + + //キ綵罔≧ + PageLinkPO link = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(SALARY_DETAILS_REPORT.getValue()).build()).stream().findFirst().orElse(null); + if (link == null) { + link = PageLinkPO.builder() + .id(IdGenerator.generate()) + .employeeId((long) user.getUID()) + .page(param.getPage()) + .templateId(systemTemplate.getId()) + .tenantKey(DEFAULT_TENANT_KEY) + .createTime(new Date()) + .updateTime(new Date()) + .creator((long) user.getUID()) + .deleteType(0).build(); + getPageLinkMapper().insertIgnoreNull(link); + } + Long templateId = link.getTemplateId(); + + //ァ + Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + Boolean chief = getTaxAgentService().isChief((long) user.getUID()); + pos = pos.stream().filter(po -> { + SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); + //膤紫罔≧睡贋・茹 + if (chief || po.getSystemType() == 1) { + return true; + } + //腱鐚Ű処綏援 + if (sharedTypeEnum == SharedTypeEnum.PRIVATE) { + return Objects.equals((long) user.getUID(), po.getCreator()); + } + //延昆 + if (sharedTypeEnum == SharedTypeEnum.PUBLIC) { + List limitIds = po.getLimitIds(); + return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0; + } + return true; + }).peek(po -> { + po.setChecked(po.getId().equals(templateId)); + }).collect(Collectors.toList()); + return pos; + } + + @Override + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { + ValidUtil.doValidator(param); + Date now = new Date(); + Long id = param.getId(); + + PageListTemplatePO po; + if (id == null) { + po = PageListTemplatePO.builder() + .id(IdGenerator.generate()) + .page(param.getPage()) + .name(param.getName()) + .sharedType(param.getSharedType()) + .systemType(0) + .limitIds(param.getLimitIds()) + .setting(param.getSetting()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY).build(); + getPageListTemplateMapper().insertIgnoreNull(po); + } else { + po = getPageListTemplateMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("罔≧推絖!"); + } + po.setName(param.getName()); + po.setSharedType(param.getSharedType()); + po.setLimitIds(param.getLimitIds()); + po.setSetting(param.getSetting()); + po.setUpdateTime(now); + getPageListTemplateMapper().updateIgnoreNull(po); + } + + return po; + } + + @Override + public void changePageListTemplate(PageListTemplateChangeParam param) { + + ValidUtil.doValidator(param); + + List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(param.getPage()).build()); + if (CollUtil.isNotEmpty(pageLinkPOS)) { + Set ids = SalaryEntityUtil.properties(pageLinkPOS, PageLinkPO::getId); + getPageLinkMapper().deleteByIds(ids); + } + PageLinkPO pageLinkPO = PageLinkPO.builder().id(IdGenerator.generate()).employeeId((long) user.getUID()).page(param.getPage()).templateId(param.getTemplateId()).tenantKey(DEFAULT_TENANT_KEY).createTime(new Date()).updateTime(new Date()).creator((long) user.getUID()).deleteType(0).build(); + + getPageLinkMapper().insertIgnoreNull(pageLinkPO); + } + + @Override + public List getPageListColumns(String page) { + PageListTemplateDetailDTO pageListTemplate = getPageListTemplate((PageListTemplateQueryParam.builder().page(page).build())); + return pageListTemplate.getChecked(); + } + + @Override + public PageInfo getTemplates(PageListTemplateQueryParam param) { + PageListTemplatePO build = PageListTemplatePO.builder().page(param.getPage()).build(); + List pos = getPageListTemplateMapper().listSome(build); + + //ァ + List agentPOList = getTaxAgentService().listAll(); + Map idNameMap = SalaryEntityUtil.convert2Map(agentPOList, TaxAgentPO::getId, TaxAgentPO::getName); + Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + Boolean chief = getTaxAgentService().isChief((long) user.getUID()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + List templateDTOS = pos.stream() + .filter(po -> { + SharedTypeEnum sharedTypeEnum = SharedTypeEnum.parseByValue(po.getSharedType()); + //膤紫罔≧睡贋・茹 + if (chief || po.getSystemType() == 1) { + return true; + } + //腱鐚Ű処綏援 + if (sharedTypeEnum == SharedTypeEnum.PRIVATE) { + return Objects.equals((long) user.getUID(), po.getCreator()); + } + //延昆 + if (sharedTypeEnum == SharedTypeEnum.PUBLIC) { + List limitIds = po.getLimitIds(); + return CollectionUtil.isEmpty(limitIds) || CollectionUtil.intersection(limitIds, taxIds).size() != 0; + } + return true; + }).map(po -> PageListTemplateDTO.builder() + .id(po.getId()) + .page(po.getPage()) + .name(po.getName()) + .sharedType(po.getSharedType()) + .systemType(po.getSystemType()) + .sharedTypeName(SharedTypeEnum.parseByValue(po.getSharedType()).getDefaultLabel()) + .systemTypeName(po.getSystemType() == 1 ? "膤紫罔≧" : "絎箙") + .limits(CollUtil.isEmpty(po.getLimitIds()) ? "" : Optional.ofNullable(po.getLimitIds()).orElse(new ArrayList<>()).stream().map(id -> idNameMap.getOrDefault(id, "")).collect(Collectors.joining(","))) + .limitIds(CollUtil.isEmpty(po.getLimitIds()) ? new ArrayList<>() : po.getLimitIds()) + .setting(po.getSetting()) + .canEdit(chief || (Objects.equals((long) user.getUID(), po.getCreator()) && po.getSystemType() == 0)) + .build()) + .collect(Collectors.toList()); + + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), templateDTOS, PageListTemplateDTO.class); + } + + @Override + public void deletePageListTemplate(PageListTemplateDeleteParam param) { + List ids = param.getIds(); + + if (CollUtil.isEmpty(ids)) { + throw new SalaryRunTimeException("罔≧随"); + } + + ids.forEach(id -> { + PageListTemplatePO pageListTemplatePO = getPageListTemplateMapper().getById(id); + if (pageListTemplatePO == null) { + throw new SalaryRunTimeException("罔≧推絖鐚"); + } + if (pageListTemplatePO.getSystemType() == 1) { + throw new SalaryRunTimeException("膤紫罔≧推莅後わ"); + } + if (!Objects.equals((long) user.getUID(), pageListTemplatePO.getCreator())) { + throw new SalaryRunTimeException(pageListTemplatePO.getName() + "罔≧炊わ"); + } + List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().templateId(id).build()); + if (CollUtil.isNotEmpty(pageLinkPOS)) { + throw new SalaryRunTimeException(pageListTemplatePO.getName() + "罔≧炊h←篏睡鐚筝莅後"); + } + }); + + getPageListTemplateMapper().deleteByIds(ids); + } +} diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index b21ece557..a466622b5 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -338,39 +338,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM @Override public void save(TaxAgentRangeSaveParam saveParam) { - if (saveParam == null) { - throw new SalaryRunTimeException("育莚"); - } - - if (Objects.isNull(saveParam.getTaxAgentId())) { - throw new SalaryRunTimeException("筝腮g軸箙>査id筝莅娯減腥"); - } - - if (saveParam.getIncludeType() != 0 && saveParam.getIncludeType() != 1) { - throw new SalaryRunTimeException("Ű初 活篋阪/篁岩賢"); - } - - if (CollectionUtils.isEmpty(saveParam.getEmployeeStatus())) { - throw new SalaryRunTimeException("綏ョ倶筝莅娯減腥"); - } - - if (CollectionUtils.isNotEmpty(saveParam.getTargetParams())) { - saveParam.getTargetParams().forEach(target -> { - if (target.getTargetType() == null) { - throw new SalaryRunTimeException("絲壕院膠糸筝巡減腥"); - } - if (target.getTargetType() == TargetTypeEnum.SQL) { - if (target.getTarget() == null) { - throw new SalaryRunTimeException("sql筝巡減腥"); - } - target.setTargetId(0L); - } else { - if (target.getTargetId() == null) { - throw new SalaryRunTimeException("絲壕院筝巡減腥"); - } - } - }); - } + checkParam(saveParam); // ヨ≫肩腮g軸箙>査 TaxAgentPO taxAgent = getTaxAgentService(user).getById(saveParam.getTaxAgentId()); @@ -427,6 +395,108 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } + private void checkParam(TaxAgentRangeSaveParam saveParam) { + if (saveParam == null) { + throw new SalaryRunTimeException("育莚"); + } + + if (Objects.isNull(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException("筝腮g軸箙>査id筝莅娯減腥"); + } + + if (saveParam.getIncludeType() != 0 && saveParam.getIncludeType() != 1) { + throw new SalaryRunTimeException("Ű初 活篋阪/篁岩賢"); + } + + if (CollectionUtils.isEmpty(saveParam.getEmployeeStatus())) { + throw new SalaryRunTimeException("綏ョ倶筝莅娯減腥"); + } + + if (CollectionUtils.isNotEmpty(saveParam.getTargetParams())) { + saveParam.getTargetParams().forEach(target -> { + if (target.getTargetType() == null) { + throw new SalaryRunTimeException("絲壕院膠糸筝巡減腥"); + } + if (target.getTargetType() == TargetTypeEnum.SQL) { + if (target.getTarget() == null) { + throw new SalaryRunTimeException("sql筝巡減腥"); + } + target.setTargetId(0L); + } else { + if (target.getTargetId() == null) { + throw new SalaryRunTimeException("絲壕院筝巡減腥"); + } + } + }); + } + } + + @Override + public void edit(TaxAgentRangeSaveParam param) { + checkParam(param); + + if (param.getId() == null) { + throw new SalaryRunTimeException("id筝巡減腥"); + } + + // ヨ≫肩腮g軸箙>査 + TaxAgentPO taxAgent = getTaxAgentService(user).getById(param.getTaxAgentId()); + if (Objects.isNull(taxAgent)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(108605, "育莚鐚筝腮g軸箙>査筝絖筝翫")); + } + + //ゅ膊∞ + getTaxAgentManageRangeMapper().deleteByIds(Collections.singleton(param.getId())); + + // ヨ√群膊∞ + List taxAgentManageAllRanges = listByTaxAgentId(param.getTaxAgentId()); + + List taxAgentManageRanges = taxAgentManageAllRanges.stream().filter(f -> f.getIncludeType().equals(param.getIncludeType())).collect(Collectors.toList()); + List oldManageList = new ArrayList<>(); + taxAgentManageRanges.stream().forEach(p -> { + TaxAgentManageRangePO target = new TaxAgentManageRangePO(); + BeanUtils.copyProperties(p, target); + oldManageList.add(target); + }); + // 紊筝筝罨∞篆絖逸絋ユ兄菴絲劫篋阪鐚//絏篏鐚鐚d罨>荀医鐚Ū荀贋逸 + TaxAgentBO.Result result = TaxAgentBO.handleTaxAgentRange(taxAgentManageRanges, param, taxAgent.getId(), (long) user.getUID(), false); + + /* 罍ュ筝腮g軸箙>査篋阪岩膊∞膊∞===========================start */ + List allRanges = Lists.newArrayList(taxAgentManageAllRanges); + allRanges.addAll(result.getNeedInsertTaxAgentManageRanges()); + allRanges.addAll(result.getNeedUpdateTaxAgentManageRanges()); + // サ + allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType()))), ArrayList::new)); + + List salaryEmployees = getSalaryEmployeeService().listAll(UseEmployeeTypeEnum.ALL); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(param.getTaxAgentId(), allRanges, salaryEmployees); + + /* 罍ュ筝腮g軸箙>査篋阪岩膊∞膊∞===========================end */ + if (CollectionUtils.isNotEmpty(result.getNeedInsertTaxAgentManageRanges())) { + result.getNeedInsertTaxAgentManageRanges().forEach(range -> { + getTaxAgentManageRangeMapper().insertIgnoreNull(range); + // 莅医篏ュ + String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId(); + SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "医篋阪"), SalaryI18nUtil.getI18nLabel(0, "医篋阪") + name, range, user); + }); + + } + if (CollectionUtils.isNotEmpty(result.getNeedUpdateTaxAgentManageRanges())) { + Map oldMap = SalaryEntityUtil.convert2Map(oldManageList, TaxAgentManageRangePO::getId); + result.getNeedUpdateTaxAgentManageRanges().forEach(range -> { + getTaxAgentManageRangeMapper().updateIgnoreNull(range); + // 莅医篏ュ + TaxAgentManageRangePO oldPO = oldMap.getOrDefault(range.getId(), TaxAgentManageRangePO.builder().build()); + String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId(); + SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "贋遺査"), SalaryI18nUtil.getI18nLabel(0, "贋遺査") + name, oldPO, range, user); + }); + + } + + /* 罩ユ遺査雁活篋阪=========================== */ + syncLocalEmp(param.getTaxAgentId(), allSalaryEmployees, param.isSync()); + } + private void syncLocalEmp(Long taxAgentId, List allSalaryEmployees, boolean isSync) { if (isSync) { syncLocalEmpRange(taxAgentId, allSalaryEmployees, (long) user.getUID()); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationApiConfigServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationApiConfigServiceImpl.java index 9d44300cc..ade9b3e6c 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationApiConfigServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationApiConfigServiceImpl.java @@ -100,6 +100,12 @@ public class TaxDeclarationApiConfigServiceImpl extends Service implements TaxDe } } + @Override + public boolean enableUse() { + TaxDeclarationApiConfigPO config = getConfig(false); + return config == null || SalaryOnOffEnum.ON.getValue().equals(config.getEnableUse()); + } + private String getApiHost() { List apiProfiles = getTaxDeclarationApiProfileMapper().listAll(); if (apiProfiles.isEmpty() || TaxDeclareApiProfileEnum.PROD.getValue().equals(apiProfiles.get(0).getApiProfile())) { diff --git a/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java index 44aae99c4..2905f2b4d 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java @@ -238,6 +238,31 @@ public class TaxDeclarationExcelServiceImpl extends Service implements TaxDeclar List> rowList = new ArrayList<>(); rowList.add(heads); + + if(param.isHasData()){ + // ヨ≫肩腮恰ヨ;膸 + List taxDeclarationValues = getTaxDeclarationValueService(user).listByTaxDeclarationIds(Collections.singleton(param.getTaxDeclarationId())); + // 莉筝腮恰ヨ;膸 + TaxDeclarationValueListDTO taxDeclarationValueListDTO = getTaxDeclarationValueService(user).convert2List(declarationPO, taxDeclarationValues); + + List dataIndexList = new ArrayList<>(); + dataIndexList.add("username"); + dataIndexList.add("departmentName"); + dataIndexList.add("mobile"); + dataIndexList.add("jobNum"); + dataIndexList.add("idNo"); + dataIndexList.addAll(SalaryEntityUtil.properties(taxReportColumnPOS, TaxReportColumnPO::getReportColumnDataIndex, Collectors.toList())); + + // 茹f茵筝井 + for (Map datum : taxDeclarationValueListDTO.getData()) { + List row = Lists.newArrayList(); + for (String dataIndex : dataIndexList) { + row.add(Util.null2String(datum.get(dataIndex))); + } + rowList.add(row); + } + } + XSSFWorkbook book = ExcelUtil.genWorkbookV2(rowList, incomeCategoryEnum.getDefaultLabel()); return book; } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java index 2104c7b46..2f5398655 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java @@ -153,9 +153,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar List employeeDeclares = getEmployeeDeclareService(user).listByTaxCycleAndTaxAgentIdAndEmployeeIds(taxDeclaration.getTaxCycle(), taxDeclaration.getTaxAgentId(), employeeIds); // ヨ≫査篆≧ List simpleEmployeeIds = taxDeclarationValues.stream().filter(taxDeclarationValue -> taxDeclarationValue.getEmployeeType() == null || Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())).map(TaxDeclarationValuePO::getEmployeeId).distinct().collect(Collectors.toList()); - List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIds(simpleEmployeeIds); - // ヨ≫査莎鐚荳篁処埇膈鐚 - List simpleUserInfos = getSalaryEmployeeService(user).getEmployeeByIds(simpleEmployeeIds); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(simpleEmployeeIds); // ヨ√篋阪 List extEmployeeIds = taxDeclarationValues.stream().filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.EXT_EMPLOYEE.getValue())).map(TaxDeclarationValuePO::getEmployeeId).collect(Collectors.toList()); List extEmployees = getExtEmpService(user).getExtEmpByIds(extEmployeeIds); @@ -163,7 +161,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar // 茵茵紊 List weaTableColumns = TaxDeclarationValueList.buildTableColumns(taxReportColumns); // 茵井 - List> data = TaxDeclarationValueList.buildTableData(incomeCategoryEnum, taxReportColumns, taxDeclarationValues, employeeDeclares, simpleEmployees, simpleUserInfos, extEmployees, false); + List> data = TaxDeclarationValueList.buildTableData(incomeCategoryEnum, taxReportColumns, taxDeclarationValues, employeeDeclares, simpleEmployees, extEmployees, false); return new TaxDeclarationValueListDTO().setColumns(weaTableColumns).setData(data); } @@ -399,9 +397,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar List employeeDeclares = getEmployeeDeclareService(user).listByTaxCycleAndTaxAgentIdAndEmployeeIds(taxDeclaration.getTaxCycle(), taxDeclaration.getTaxAgentId(), employeeIds); // ヨ≫査篆≧ List simpleEmployeeIds = taxDeclarationValues.stream().filter(taxDeclarationValue -> taxDeclarationValue.getEmployeeType() == null || Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())).map(TaxDeclarationValuePO::getEmployeeId).distinct().collect(Collectors.toList()); - List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIds(simpleEmployeeIds); - // ヨ≫査莎鐚荳篁処埇膈鐚 - List simpleUserInfos = getSalaryEmployeeService(user).getEmployeeByIds(simpleEmployeeIds); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(simpleEmployeeIds); // ヨ√篋阪 List extEmployeeIds = taxDeclarationValues.stream().filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.EXT_EMPLOYEE.getValue())).map(TaxDeclarationValuePO::getEmployeeId).collect(Collectors.toList()); List extEmployees = getExtEmpService(user).getExtEmpByIds(extEmployeeIds); @@ -415,7 +411,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar // } // 茵井 - List> localList = TaxDeclarationValueList.buildTableData(incomeCategoryEnum, taxReportColumns, taxDeclarationValues, employeeDeclares, simpleEmployees, simpleUserInfos, extEmployees, true); + List> localList = TaxDeclarationValueList.buildTableData(incomeCategoryEnum, taxReportColumns, taxDeclarationValues, employeeDeclares, simpleEmployees, extEmployees, true); Map> localMap = new HashMap<>(); diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java index 572fb1e7a..77e7d2244 100644 --- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java @@ -9,6 +9,8 @@ import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.constant.SzyhApiConstant; import com.engine.salary.entity.datacollection.AddUpSituation; +import com.engine.salary.entity.datacollection.param.OtherDeductionFreeListQueryParam; +import com.engine.salary.entity.datacollection.po.*; import com.engine.salary.entity.employeedeclare.bo.EmployeeDeclareRequest; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; import com.engine.salary.entity.salaryacct.param.SalaryAcctEmployeeQueryParam; @@ -34,6 +36,7 @@ import com.engine.salary.entity.taxdeclaration.response.DeclareTaxFeedbackRespon import com.engine.salary.entity.taxdeclaration.response.DeclareTaxResponse; import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.datacollection.TaxFreeTypeEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; @@ -172,6 +175,10 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe return ServiceUtil.getService(SalarySobServiceImpl.class, user); } + private OtherDeductionService getOtherDeductionService(User user) { + return ServiceUtil.getService(OtherDeductionServiceImpl.class, user); + } + private TaxPaymentServiceFactory taxPaymentServiceFactory = new TaxPaymentServiceFactory(user); @@ -688,6 +695,9 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe List employeeDeclares = getEmployeeDeclareService(user).listByTaxCycleAndTaxAgentId(taxDeclareRecord.getTaxCycle(), taxDeclareRecord.getTaxAgentId()); employeeDeclares = employeeDeclares.stream().filter(e -> Objects.equals(e.getDeclareStatus(), DeclareStatusEnum.DECLARE_SUCCESS.getValue())).collect(Collectors.toList()); + // ヨ√銀腮iゆ膸 + Map> taxFreeMap = getOtherDeductionDetailMap(taxDeclareRecord); + TaxDeclarationApiConfigPO apiConfig = taxDeclareRequest.getTaxDeclarationApiConfig(); // ヨ≫肩腮恰ヨ;茵紊 List taxReportColumns = getTaxReportColumnService(user).listAll(); @@ -701,7 +711,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (declareReportType == DeclareReportTypeEnum.COMPREHENSIVE_INCOME) { // 膸弱緇 - Map taxDeclarationParam = TaxDeclarationRequest.convert2RequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares); + Map taxDeclarationParam = TaxDeclarationRequest.convert2RequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares, taxFreeMap); requestParam.put("zhsd", taxDeclarationParam); } @@ -748,6 +758,36 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } + private Map> getOtherDeductionDetailMap(TaxDeclareRecordPO taxDeclareRecord) { + Map> taxFreeMap = new HashMap<>(); + OtherDeductionFreeListQueryParam queryParam = OtherDeductionFreeListQueryParam.builder().taxAgentId(taxDeclareRecord.getTaxAgentId()).taxCycle(taxDeclareRecord.getTaxCycle()).build(); + + List freeIncomes = getOtherDeductionService(user).queryFreeIncomes(queryParam); + Map> freeIncomeMap = freeIncomes.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.FREE_INCOME, freeIncomeMap); + + List healthInsurances = getOtherDeductionService(user).queryHealthInsurances(queryParam); + Map> healthInsuranceMap = healthInsurances.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.HEALTH_INSURANCE, healthInsuranceMap); + + List endowmentInsurances = getOtherDeductionService(user).queryEndowmentInsurances(queryParam); + Map> endowmentInsuranceMap = endowmentInsurances.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.ENDOWMENT_INSURANCE, endowmentInsuranceMap); + + List grantDonations = getOtherDeductionService(user).queryGrantDonations(queryParam); + Map> grantDonationMap = grantDonations.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.GRANT_DONATION, grantDonationMap); + + List derateDeductions = getOtherDeductionService(user).queryDerateDeductions(queryParam); + Map> derateDeductionMap = derateDeductions.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.DERATE_DEDUCTION, derateDeductionMap); + + List otherDerateDeductions = getOtherDeductionService(user).queryOtherDerateDeductions(queryParam); + Map> otherDerateDeductionMap = otherDerateDeductions.stream().collect(Collectors.groupingBy(e -> e.getTaxAgentId() + "-" + e.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(e.getTaxYearMonth()))); + taxFreeMap.put(TaxFreeTypeEnum.OTHER_DERATE_DEDUCTION, otherDerateDeductionMap); + return taxFreeMap; + } + @Override public void getDeclareFeedback(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); @@ -909,10 +949,10 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe // 羝腥堺緇 requestParam.put("sfqksd", "0"); - Map responseParam = new HashMap<>(); - responseParam.put("reportType",reportType + ""); + Map responseParam = new HashMap<>(); + responseParam.put("reportType", reportType + ""); DeclareClient declareClient = new DeclareClient(taxAgentId); - CancelDeclareFeedbackResponse cancelDeclareFeedbackResponse = declareClient.cancel(requestParam,responseParam); + CancelDeclareFeedbackResponse cancelDeclareFeedbackResponse = declareClient.cancel(requestParam, responseParam); // 篏綺 CancelDeclareStatusEnum cancelDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(SalaryEntityUtil.getIntValue(cancelDeclareFeedbackResponse.getBody().get("fkztbj"), 10), CancelDeclareStatusEnum.class); diff --git a/src/com/engine/salary/service/impl/TaxPaymentAgreementServiceImpl.java b/src/com/engine/salary/service/impl/TaxPaymentAgreementServiceImpl.java index ca76573f1..b27e4e6b4 100644 --- a/src/com/engine/salary/service/impl/TaxPaymentAgreementServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxPaymentAgreementServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.salary.entity.taxpayment.dto.TaxAgreementBankFormDTO; import com.engine.salary.entity.taxpayment.dto.TaxAgreementFormDTO; import com.engine.salary.entity.taxpayment.dto.TaxFeedbackResultDTO; import com.engine.salary.entity.taxpayment.param.TaxPaymentQueryParam; +import com.engine.salary.entity.taxpayment.po.TaxPaymentRequestPO; import com.engine.salary.entity.taxpayment.response.AgreementQueryFeedbackResponse; import com.engine.salary.entity.taxpayment.response.BaseResponse; import com.engine.salary.enums.taxdeclaration.TaxPaymentServiceTypeEnum; @@ -39,13 +40,17 @@ public class TaxPaymentAgreementServiceImpl extends AbstractTaxPaymentService { String responseCode = Optional.ofNullable(feedbackResponse).map(AgreementQueryFeedbackResponse::getHead).map(SzyhResponseHead::getCode).orElse(null); String msg = Optional.ofNullable(feedbackResponse).map(AgreementQueryFeedbackResponse::getHead).map(SzyhResponseHead::getMsg).orElse(null); TaxAgreementFormDTO agreementFormDTO = new TaxAgreementFormDTO(); - if (SzyhApiConstant.HANDLING_CODE.equals(responseCode)||SzyhApiConstant.TASK_HANDLING_CODE.equals(responseCode)) { + if (SzyhApiConstant.HANDLING_CODE.equals(responseCode) || SzyhApiConstant.TASK_HANDLING_CODE.equals(responseCode)) { // 絋・d紊筝鐚膸х鮫莉莚 return agreementFormDTO.setFinish(false); } // キ菴篋阪篆≧茵 if (!SzyhApiConstant.SUCCESS_CODE.equals(responseCode)) { log.error("getAgreementQueryFeedbackResponse not success: {}", JSON.toJSONString(feedbackResponse)); + TaxPaymentRequestPO taxPaymentRequestPO = getTaxPaymentRequestPO(param); + if (taxPaymentRequestPO != null && taxPaymentRequestPO.getId() != null) { + getTaxPaymentRequestMapper().delete(taxPaymentRequestPO); + } throw new SalaryRunTimeException(msg); } List feedbacks = Optional.of(feedbackResponse) @@ -54,6 +59,10 @@ public class TaxPaymentAgreementServiceImpl extends AbstractTaxPaymentService { .orElse(new ArrayList<>()); if (feedbacks.isEmpty()) { log.error("getAgreementQueryFeedbackResponse empty data error: {}", JSON.toJSONString(feedbackResponse)); + TaxPaymentRequestPO taxPaymentRequestPO = getTaxPaymentRequestPO(param); + if (taxPaymentRequestPO != null && taxPaymentRequestPO.getId() != null) { + getTaxPaymentRequestMapper().delete(taxPaymentRequestPO); + } throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(175338, "腮絮・i莚鐚菴井")); } // 贋亥軸罨乗傑筝阪群薤 diff --git a/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java new file mode 100644 index 000000000..b7aff7cae --- /dev/null +++ b/src/com/engine/salary/service/impl/VariableArchiveItemServiceImpl.java @@ -0,0 +1,87 @@ +package com.engine.salary.service.impl; + +import com.engine.core.impl.Service; +import com.engine.salary.encrypt.EncryptUtil; +import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; +import com.engine.salary.mapper.datacollection.VariableArchiveItemMapper; +import com.engine.salary.service.VariableArchiveItemService; +import com.engine.salary.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Collections; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName VariableArchiveItemServiceImpl + * @date 2024/08/07 9:29 + * @description 羌罅f膸 + */ +public class VariableArchiveItemServiceImpl extends Service implements VariableArchiveItemService { + private EncryptUtil encryptUtil = new EncryptUtil(); + + private VariableArchiveItemMapper getVariableArchiveItemMapper(){ + return MapperProxyFactory.getProxy(VariableArchiveItemMapper.class); + } + + @Override + public List listAll() { + return getVariableArchiveItemMapper().listAll(); + } + + /** + * 号羌莎罅fidキ + * + * @param variableArchiveIds + * @return + */ + @Override + public List listByVariableArchiveIds(List variableArchiveIds) { + if (CollectionUtils.isEmpty(variableArchiveIds)) { + return Collections.emptyList(); + } + List variableArchiveItemPOS = getVariableArchiveItemMapper().listSome(VariableArchiveItemPO.builder().variableArchiveIds(variableArchiveIds).build()); + return encryptUtil.decryptList(variableArchiveItemPOS, VariableArchiveItemPO.class); + } + + /** + * ヨ∽貴罅f筝綏俄戎羌莎蕁合 + * + * @return + */ + @Override + public List listUsingItems() { + return getVariableArchiveItemMapper().listUsingItems(); + } + + @Override + public int batchInsert(List insertList) { + if (CollectionUtils.isEmpty(insertList)) { + return 0; + } + encryptUtil.encryptList(insertList, VariableArchiveItemPO.class); + List> partition = Lists.partition(insertList, 50); + partition.forEach(part -> getVariableArchiveItemMapper().batchInsert(part)); + return 0; + } + + @Override + public void deleteByArchiveIds(List variableArchiveIds) { + if (CollectionUtils.isEmpty(variableArchiveIds)) { + return; + } + List> partition = Lists.partition(variableArchiveIds, 500); + partition.forEach(part -> getVariableArchiveItemMapper().deleteByArchiveIds(part)); + } + + @Override + public void deleteByIds(List variableArchiveItemIds) { + if (CollectionUtils.isEmpty(variableArchiveItemIds)) { + return; + } + List> partition = Lists.partition(variableArchiveItemIds, 500); + partition.forEach(part -> getVariableArchiveItemMapper().deleteByIds(part)); + + } +} diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java new file mode 100644 index 000000000..06218ebc9 --- /dev/null +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -0,0 +1,637 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.constant.SalaryItemConstant; +import com.engine.salary.entity.datacollection.bo.VariableArchiveBO; +import com.engine.salary.entity.datacollection.bo.VariableArchiveExcelBO; +import com.engine.salary.entity.datacollection.dto.VariableArchiveListDTO; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandleParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveQueryParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveSaveParam; +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.po.TaxAgentPO; +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.sys.entity.vo.OrderRuleVO; +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.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.excel.*; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +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; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.file.ImageFileManager; +import weaver.general.Util; +import weaver.hrm.User; + +import java.io.InputStream; +import java.time.YearMonth; +import java.util.*; +import java.util.stream.Collectors; + +import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; + +/** + * @author Harryxzy + * @ClassName VariableArchiveServiceImpl + * @date 2024/08/06 17:40 + * @description 羌罅f + */ +public class VariableArchiveServiceImpl extends Service implements VariableArchiveService { + + private VariableArchiveMapper getVariableArchiveMapper() { + return MapperProxyFactory.getProxy(VariableArchiveMapper.class); + } + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + public SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + private VariableArchiveItemService getVariableArchiveItemService(User user) { + return ServiceUtil.getService(VariableArchiveItemServiceImpl.class, user); + } + + private VariableItemService getVariableItemService(User user) { + return ServiceUtil.getService(VariableItemServiceImpl.class, user); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + private int deleteByIds(List deleteIds) { + if (CollectionUtils.isEmpty(deleteIds)) { + return 0; + } + return getVariableArchiveMapper().deleteByIds(deleteIds); + } + + /** + * 羌罅f茵 + * + * @param queryParam + * @return + */ + @Override + public PageInfo listPage(VariableArchiveQueryParam queryParam) { + List variableArchiveList = list(queryParam); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), variableArchiveList, VariableArchiveListDTO.class); + } + + @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())); + } + //綺臀 + OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); + queryParam.setOrderRule(orderRule); + return listDTO(queryParam); + } + + public List listDTO(VariableArchiveQueryParam queryParam) { + List list = getVariableArchiveMapper().list(queryParam); + SalaryI18nUtil.i18nList(list); + return list; + } + + /** + * 綮堺貴莎罅f井 + * + * @param variableArchives + * @return + */ + @Override + public List> buildVariableArchiveData(List variableArchives) { + List variableArchiveIds = variableArchives.stream().map(VariableArchiveListDTO::getId).collect(Collectors.toList()); + // キ羌莎罅f絲劫羌莎蕁合井 + List variableArchiveItemList = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds); + Map> variableArchiveItemMap = SalaryEntityUtil.group2Map(variableArchiveItemList, VariableArchiveItemPO::getVariableArchiveId); + List> variableArchiveItemData = variableArchives.stream().map(m -> { + Map map = Maps.newHashMap(); + map.put("variableArchiveId", m.getId()); + List variableArchiveItemValuelList = variableArchiveItemMap.getOrDefault(m.getId(), Collections.emptyList()); + variableArchiveItemValuelList.forEach(i -> { + map.put(i.getVariableItemId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX, i.getItemValue()); + }); + return map; + }).collect(Collectors.toList()); + + + // 膸茖井 + List> listMaps = new ArrayList<>(); + variableArchives.forEach(e -> { + Map map = new LinkedHashMap<>(); + map.put("id", e.getId()); + map.put("taxAgentName", e.getTaxAgentName()); + map.put("taxAgentIds", e.getTaxAgentId()); + map.put("username", e.getUsername()); + map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(e.getSalaryMonth())); + map.put("employeeId", e.getEmployeeId()); + map.put("subcompanyName", e.getSubcompanyName()); + map.put("departmentName", e.getDepartmentName()); + map.put("mobile", e.getMobile()); + map.put("workcode", e.getWorkcode()); + map.put("idNo", e.getIdNo()); + map.put("companystartdate", e.getCompanystartdate()); + map.put("dismissdate", e.getDismissdate()); + + // 羌莎蕁合 + Optional> optionalItem = variableArchiveItemData.stream().filter(f -> f.get("variableArchiveId").toString().equals(e.getId().toString())).findFirst(); + optionalItem.ifPresent(map::putAll); + + listMaps.add(map); + }); + return listMaps; + } + + /** + * 綮堺貴罅f + * + * @param saveParam + */ + @Override + public void createData(VariableArchiveSaveParam saveParam) { + ValidUtil.doValidator(saveParam); + saveParam.setSalaryMonthDate(SalaryDateUtil.dateStrToLocalYearMonth(saveParam.getSalaryMonth())); + + List variableArchivePOList = getVariableArchiveMapper().listSome(VariableArchivePO.builder().salaryMonth(saveParam.getSalaryMonthDate()).taxAgentId(saveParam.getTaxAgentIds()).employeeId(saveParam.getEmployeeId()).build()); + if (CollectionUtils.isNotEmpty(variableArchivePOList)) { + throw new SalaryRunTimeException("綏峨羌井"); + } + + // 篆絖羌莎罅f篆≧ + Date now = new Date(); + VariableArchivePO variableArchivePO = VariableArchivePO.builder() + .id(IdGenerator.generate()) + .employeeId(saveParam.getEmployeeId()) + .taxAgentId(saveParam.getTaxAgentIds()) + .salaryMonth(saveParam.getSalaryMonthDate()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getVariableArchiveMapper().insertIgnoreNull(variableArchivePO); + + // 篆絖羌莎罅f莚膸篆≧ + List variableArchiveItemList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(saveParam.getItemValueList())){ + saveParam.getItemValueList().forEach(e -> { + variableArchiveItemList.add(VariableArchiveItemPO.builder() + .id(IdGenerator.generate()) + .employeeId(saveParam.getEmployeeId()) + .variableArchiveId(variableArchivePO.getId()) + .variableItemId(e.getVariableItemId()) + .itemValue(e.getItemValue()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + }); + } + + if (CollectionUtils.isNotEmpty(variableArchiveItemList)) { + getVariableArchiveItemService(user).batchInsert(variableArchiveItemList); + } + } + + /** + * 羌莎罅f膸 + * + * @param queryParam + * @return + */ + @Override + public Map getDetail(VariableArchiveQueryParam queryParam) { + if (queryParam.getId() == null) { + return Collections.emptyMap(); + } + + List variableArchiveList = listDTO(queryParam); + + // キ羌蕁合 + List variableItems = getVariableItemService(user).listAll(); + + //翫丞ず鐚阪+莎蕁合鐚 + List> listMaps = buildVariableArchiveData(variableArchiveList); + Map resultMap = listMaps.get(0); + + //膸茖 + List columns = VariableArchiveBO.buildVariableArchiveTable(variableItems); + + Map datas = new HashMap<>(); + datas.put("data", resultMap); + datas.put("column", columns); + return datas; + } + + @Override + public List getCreateForm() { + List variableItemPOS = getVariableItemService(user).listAll(); + List variableItemDTOList = variableItemPOS.stream() + .map(po -> VariableItemListDTO.builder() + .id(po.getId()) + .name(po.getName()) + .dataType(SalaryDataTypeEnum.parseByValue(po.getDataType()).getValue()) + .build()) + .collect(Collectors.toList()); + return variableItemDTOList; + } + + @Override + public XSSFWorkbook downloadTemplate(VariableArchiveQueryParam param) { + // 腱 + String nameI18n = SalaryI18nUtil.getI18nLabel(0, "羌絲弱ユ─"); + + // キ茴綣莎蕁合 + List variableItems = getVariableItemService(user).listAll(); + List header = Lists.newArrayList(); + header.add(SalaryI18nUtil.getI18nLabel(0, "筝腮g軸箙>査")); + header.add(SalaryI18nUtil.getI18nLabel(85429, "紮")); + header.add(SalaryI18nUtil.getI18nLabel(86185, "")); + header.add(SalaryI18nUtil.getI18nLabel(86186, "阪")); + header.add(SalaryI18nUtil.getI18nLabel(1933, "綏ュ")); + header.add(SalaryI18nUtil.getI18nLabel(86186, "莚篁九埇")); + header.add(SalaryI18nUtil.getI18nLabel(86187, "ヨユ")); + for (VariableItemPO variableItem : variableItems) { + header.add(variableItem.getName()); + } + + // 2.茵紊 + List> rows = new ArrayList<>(); + rows.add(header); + // キ罅f篆≧ + List variableArchiveList = list(param); + + if (param.isHasData()) { + List> listMaps = buildVariableArchiveData(variableArchiveList); + // 膸茖井 + listMaps.forEach(e -> { + List row = new ArrayList<>(); + row.add(e.get("taxAgentName").toString()); + row.add(e.get("username").toString()); + row.add(Optional.ofNullable(e.get("departmentName")).orElse("").toString()); + row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); + row.add(Optional.ofNullable(e.get("workcode")).orElse("").toString()); + row.add(Util.null2String(e.get("idNo"))); + row.add(Util.null2String(e.get("companystartdate"))); + + // 莎蕁合井 + for (VariableItemPO variableItem : variableItems) { + row.add(e.containsKey(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX) ? (e.get(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX) == null ? "" + : e.get(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX).toString()) : ""); + } + rows.add(row); + }); + } + + + // 4.羈 + List excelComments = Lists.newArrayList(); + + return ExcelUtilPlus.genWorkbookV2(rows, nameI18n, excelComments); + } + + @Override + public ExcelPreviewDTO preview(VariableArchiveImportHandleParam importParam) { + + //excel篁id + String imageId = Util.null2String(importParam.getImageId()); + + InputStream fileInputStream = null; + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + return ExcelParseHelper.preview(fileInputStream, 0, EXCEL_TYPE_XLSX); + } finally { + IOUtils.closeQuietly(fileInputStream); + } + } + + @Override + public Map importData(VariableArchiveImportHandleParam importParam) { + // 紮初膈 + VariableArchiveExcelBO.initI18n(); + // ♂ + checkImportParam(importParam); + String imageId = importParam.getImageId(); + // 綮阪弱ュ + importParam = buildImportHandleParam(importParam); + // 絲弱ユ紊 + List allTodoVariableArchives = Lists.newArrayList(); + + InputStream fileInputStream = null; + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); + Workbook workbook = ExcelSupport.parseFile(fileInputStream, EXCEL_TYPE_XLSX); + Sheet sheet = workbook.getSheetAt(0); + List headers = ExcelSupport.getSheetHeader(sheet, 0); + + int total = 0; + //excel井 + List> data = ExcelParseHelper.parse2Map(workbook, 0, 1); + if (data != null) { + total += data.size(); + } + + int index = 0; + int successCount = 0; + int errorCount = 0; + // 篋鐚紮絲弱ワ後employeeId句紊 + List initImportData = Lists.newArrayList(); + + + // 莚腓 + List> excelComments = new ArrayList<>(); + // 莚sheet井 + List> errorData = new ArrayList<>(); + + Map map; + for (int i = 0; i < data.size(); i++) { + index += 1; + map = data.get(i); + map.put("index", i + 2); + // 3.♂茵絎 + boolean isError = VariableArchiveExcelBO.singleRowCheck(allTodoVariableArchives, map, headers, excelComments, errorCount, importParam, user); + if (isError) { + errorCount += 1; + // 羞糸莚井 + errorData.add(map); + } else { + successCount += 1; + } + } + + // 4.井ュ紊 + handleImportData(importParam); + + Map apidatas = new HashMap<>(); + + apidatas.put("successCount", successCount); + apidatas.put("errorCount", errorCount); + apidatas.put("errorNotice", excelComments); + return apidatas; + } finally { + IOUtils.closeQuietly(fileInputStream); + } + } + + private void checkImportParam(VariableArchiveImportHandleParam importParam) { + //excel篁id + String imageId = Util.null2String(importParam.getImageId()); + //腮罨丈絮 + String salaryMonthStr = Util.null2String(importParam.getSalaryMonth()); + if (StringUtils.isBlank(imageId)) { + throw new SalaryRunTimeException("篁銀絖"); + } + if (StringUtils.isBlank(salaryMonthStr)) { + throw new SalaryRunTimeException("莎絮筝榊"); + } + } + + /** + * 綮阪弱ュ + * + * @param param + * @return + */ + private VariableArchiveImportHandleParam buildImportHandleParam(VariableArchiveImportHandleParam param) { + // キ茴綣羌莎蕁合 + List variableItems = getVariableItemService(user).listAll(); + Collection variableItemIds = variableItems.stream().map(VariableItemPO::getId).collect(Collectors.toList()); + List variableArchiveList = getVariableArchiveMapper().listSome(VariableArchivePO.builder().salaryMonth(SalaryDateUtil.dateStrToLocalYearMonth(param.getSalaryMonth())).build()); + + List variableArchiveIds = variableArchiveList.stream().map(VariableArchivePO::getId).collect(Collectors.toList()); + Map variableArchivesMap = SalaryEntityUtil.convert2Map(variableArchiveList, k -> k.getTaxAgentId() + "-" + k.getEmployeeId()); + + // キ羌莎罅f膸井 + 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()); + + + return VariableArchiveImportHandleParam.builder() + .imageId(param.getImageId()) + .salaryMonth(param.getSalaryMonth()) + .salaryMonthDate(SalaryDateUtil.dateStrToLocalYearMonth(param.getSalaryMonth())) + .currentEmployeeId((long) user.getUID()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + //篋阪絎篏劫 + .empValidType(getSalaryEmployeeService(user).empValidType()) + // キ腱隙篋阪 + .employees(getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ORG)) + // 羌莎蕁合 + .variableItems(variableItems) + // ヨ√群羌莎罅f堺井 + .variableArchivesMap(variableArchivesMap) + // 羌莎蕁合id + .variableItemIds(variableItemIds) + // ヨ√群羌莎蕁合井 + .effectiveItemListMap(variableArchiveItemMap) + // 篁ョ∞箙>査 + .taxAgentList(taxAgentList) + // 綵狗 + .nowTime(new Date()) + // 綵紊 + .today(new Date()) + // 緇篆絖羌莎罅f + .variableArchiveSaves(Lists.newArrayList()) + // 緇篆絖羌莎罅f-羌莎蕁合 + .variableArchiveItemSaves(Lists.newArrayList()) + // 緇ゆ貴莎罅f-羌莎蕁合 + .variableArchiveItemDelSalaryItemIds(Lists.newArrayList()) + .build(); + } + + + private void handleImportData(VariableArchiveImportHandleParam importHandleParam) { + List variableArchiveSaves = importHandleParam.getVariableArchiveSaves(); + List variableArchiveItemSaves = importHandleParam.getVariableArchiveItemSaves(); + List variableArchiveItemDelSalaryItemIds = importHandleParam.getVariableArchiveItemDelSalaryItemIds(); + + // 医罅f + if (CollectionUtils.isNotEmpty(variableArchiveSaves)) { + variableArchiveSaves.stream().forEach(getVariableArchiveMapper()::insertIgnoreNull); + } + // 莎罅f-莎蕁合 + if (CollectionUtils.isNotEmpty(variableArchiveItemDelSalaryItemIds)) { + getVariableArchiveItemService(user).deleteByIds(variableArchiveItemDelSalaryItemIds); + } + // 莎罅f-莎蕁合 + if (CollectionUtils.isNotEmpty(variableArchiveItemSaves)) { + getVariableArchiveItemService(user).batchInsert(variableArchiveItemSaves); + } + } + + @Override + public XSSFWorkbook export(VariableArchiveQueryParam param) { + // 腱 + String nameI18n = SalaryI18nUtil.getI18nLabel(0, "羌"); + + // キ茴綣莎蕁合 + List variableItems = getVariableItemService(user).listAll(); + List header = VariableArchiveBO.buildVariableArchiveTable(variableItems); + Map columnMap = SalaryEntityUtil.convert2Map(header, WeaTableColumn::getColumn); + + List finalColumns = new ArrayList<>(); + param.getColumns().forEach(col -> { + WeaTableColumn column = columnMap.get(col); + if (column != null) { + finalColumns.add(column); + } + }); + header = finalColumns; + + // 2.茵紊 + List> rows = new ArrayList<>(); + rows.add(header.stream().map(WeaTableColumn::getText).collect(Collectors.toList())); + // キ罅f篆≧ + List variableArchiveList = list(param); + List> listMaps = buildVariableArchiveData(variableArchiveList); + // 膸茖井 + List finalHeader = header; + listMaps.forEach(e -> { + List row = new ArrayList<>(); + for (WeaTableColumn column : finalHeader) { + row.add(Util.null2String(e.get(column.getColumn()))); + } + // row.add(e.get("salaryMonth").toString()); + // row.add(e.get("taxAgentName").toString()); + // row.add(e.get("username").toString()); + // row.add(Optional.ofNullable(e.get("departmentName")).orElse("").toString()); + // row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); + // row.add(Optional.ofNullable(e.get("workcode")).orElse("").toString()); + // row.add(Util.null2String(e.get("idNo"))); + // row.add(Util.null2String(e.get("companystartdate"))); + // + // // 莎蕁合井 + // for (VariableItemPO variableItem : variableItems) { + // row.add(e.containsKey(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX) ? (e.get(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX) == null ? "" + // : e.get(variableItem.getId() + SalaryItemConstant.VARIABLE_ITEM_DYNAMIC_SUFFIX).toString()) : ""); + // } + rows.add(row); + }); + + // 4.羈 + List excelComments = Lists.newArrayList(); + + return ExcelUtilPlus.genWorkbookV2(rows, nameI18n, excelComments); + } + + @Override + public void deleteSelectVariableArchive(Collection deleteIds) { + if (CollectionUtils.isEmpty(deleteIds)) { + return; + } + List variableArchivePOList = getVariableArchiveMapper().listSome(VariableArchivePO.builder().ids(deleteIds).build()); + List archiveIds = variableArchivePOList.stream().map(VariableArchivePO::getId).collect(Collectors.toList()); + deleteByIds(archiveIds); + // ゆ膸 + getVariableArchiveItemService(user).deleteByArchiveIds(archiveIds); + + } + + @Override + public List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId) { + VariableArchiveQueryParam queryParam = VariableArchiveQueryParam.builder() + .employeeIds(employeeIds) + .salaryMonth(SalaryDateUtil.getFormatYearMonth(salaryMonth)) + .salaryMonthDate(SalaryDateUtil.toDate(salaryMonth, 1)) + .taxAgentIds(Collections.singletonList(taxAgentId)) + .build(); + List variableArchiveListDTO = list(queryParam); + return buildVariableArchiveData(variableArchiveListDTO); + } + + @Override + public void updateData(VariableArchiveSaveParam updateParam) { + if (updateParam.getId() == null) { + throw new SalaryRunTimeException("育莚"); + } + // キ羌罅f + VariableArchivePO variableArchivePO = getVariableArchiveMapper().getById(updateParam.getId()); + if (variableArchivePO == null) { + throw new SalaryRunTimeException("羌罅f筝絖綏画←"); + } + + // ゅ羌罅f膸 + getVariableArchiveItemService(user).deleteByArchiveIds(Collections.singletonList(updateParam.getId())); + + // 篆絖羌莎罅f莚膸篆≧ + List variableArchiveItemList = new ArrayList<>(); + Date now = new Date(); + updateParam.getItemValueList().forEach(e -> { + variableArchiveItemList.add(VariableArchiveItemPO.builder() + .id(IdGenerator.generate()) + .employeeId(updateParam.getEmployeeId()) + .variableArchiveId(variableArchivePO.getId()) + .variableItemId(e.getVariableItemId()) + .itemValue(e.getItemValue()) + .creator(Long.valueOf(user.getUID())) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + }); + + if (CollectionUtils.isNotEmpty(variableArchiveItemList)) { + getVariableArchiveItemService(user).batchInsert(variableArchiveItemList); + } + } +} diff --git a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java new file mode 100644 index 000000000..7ae749ae3 --- /dev/null +++ b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java @@ -0,0 +1,260 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableItemQueryParam; +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; +import com.engine.salary.service.*; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; +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.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.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName VariableItemServiceImpl + * @date 2024/08/07 9:31 + * @description 羌蕁合 + */ +public class VariableItemServiceImpl extends Service implements VariableItemService { + + private VariableItemMapper getVariableItemMapper(){ + return MapperProxyFactory.getProxy(VariableItemMapper.class); + } + + private SalaryFormulaService getSalaryFormulaService(User user) { + return ServiceUtil.getService(SalaryFormulaServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private VariableArchiveItemService getVariableArchiveItemService(User user) { + return ServiceUtil.getService(VariableArchiveItemServiceImpl.class, user); + } + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + + @Override + public VariableItemPO getById(Long id) { + if (id == null) { + return null; + } + return getVariableItemMapper().getById(id); + } + + @Override + public List listByIds(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return Collections.emptyList(); + } + return getVariableItemMapper().listSome(VariableItemPO.builder().ids(ids).build()); + } + + /** + * キ羌蕁合 + * @return + */ + @Override + public List listAll() { + return getVariableItemMapper().listAll(); + } + + /** + * キ羌莎蕁合茵鐚蕁居 + * + * @param queryParam + * @return + */ + @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()); + } + // ヨ≫ょcodeid + SalaryItemServiceImpl.UsingItem usingItem = getSalaryItemService(user).getUsingItem(); + List usingCodes = usingItem.getUsingCodes(); + List usingVariableItemIds = getVariableArchiveItemService(user).listUsingItems(); + + List variableItemDTOList = variableItemPOS.stream() + .map(po -> VariableItemListDTO.builder() + .id(po.getId()) + .name(po.getName()) + .dataType(SalaryDataTypeEnum.parseByValue(po.getDataType()).getDefaultLabel()) + .canDelete( !(usingCodes.contains(po.getCode()) || usingVariableItemIds.contains(po.getId())) ) + .build()) + .collect(Collectors.toList()); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), variableItemDTOList, VariableItemListDTO.class); + } + + private List listByName(String name) { + return getVariableItemMapper().listSome(VariableItemPO.builder().name(name).build()); + } + + @Override + public Integer save(VariableItemSaveParam saveParam) { + // 腱遺遵綏我絎箙莎蕁合 + List variableItemPOS = listByName(saveParam.getName()); + if (CollectionUtils.isNotEmpty(variableItemPOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "蕁合腱医群絖鐚莚潔医遵")); + } + Date now = new Date(); + long id = com.engine.salary.util.db.IdGenerator.generate(); + VariableItemPO variableItemPO = VariableItemPO.builder() + .id(id) + .name(saveParam.getName()) + .code(IdGenerator.getUUID()) + .dataType(saveParam.getDataType()) + .creator(Long.valueOf(user.getUID())) + .deleteType(NumberUtils.INTEGER_ZERO) + .createTime(now) + .updateTime(now) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + return getVariableItemMapper().insertIgnoreNull(variableItemPO); + + } + + @Override + public VariableItemPO update(VariableItemSaveParam saveParam) { + ValidUtil.doValidator(saveParam, RuntimeTypeEnum.UPDATE); + // ヨ∵莎蕁合鐚ゆ莎蕁合絖 + VariableItemPO variableItemPO = getById(saveParam.getId()); + if (Objects.isNull(variableItemPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "育莚鐚蕁合筝絖綏画←")); + } + // 腱遺遵綏我絎箙莎蕁合 + List variableItemPOS = listByName(saveParam.getName()); + boolean nameExist = variableItemPOS.stream().anyMatch(e -> !Objects.equals(saveParam.getId(), e.getId())); + if (nameExist) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98326, "蕁合腱医群絖鐚莚潔医遵")); + } + + // 贋域莎蕁合 + VariableItemPO newVariableItemPO = new VariableItemPO(); + BeanUtils.copyProperties(variableItemPO, newVariableItemPO); + newVariableItemPO.setName(saveParam.getName()); + newVariableItemPO.setDataType(saveParam.getDataType()); + newVariableItemPO.setUpdateTime(new Date()); + getVariableItemMapper().update(newVariableItemPO); + + //劫贋医綣 + String oldName = variableItemPO.getName(); + String newName = saveParam.getName(); + if (!StringUtils.equals(oldName, newName)) { + String itemPrefix = "variableItem_"; + String fieldNamePrefix = "{羌莎蕁合.%s}"; + changeName(variableItemPO, oldName, newName, itemPrefix, fieldNamePrefix); + } + return variableItemPO; + } + + private void changeName(VariableItemPO variableItemPO, String oldName, String newName, String itemPrefix, String fieldNamePrefix) { + String code = itemPrefix + variableItemPO.getCode(); + Date now = new Date(); + List formulaVars = getSalaryFormulaService(user).listByCode(code); + formulaVars.forEach(v -> { + FormulaVar formulaVar = FormulaVar.builder() + .id(v.getId()) + .name(newName) + .fieldName(String.format(fieldNamePrefix, newName)) + .updateTime(now) + .build(); + getSalaryFormulaService(user).updateVar(formulaVar); + }); + + List formulaIds = SalaryEntityUtil.properties(formulaVars, FormulaVar::getFormulaId, Collectors.toList()); + List formulaPOS = getSalaryFormulaService(user).listByIds(formulaIds); + formulaPOS.forEach(f -> { + String formula = f.getFormula(); + formula = formula.replace(String.format(fieldNamePrefix, oldName), String.format(fieldNamePrefix, newName)); + FormulaPO formulaPO = FormulaPO.builder() + .id(f.getId()) + .formula(formula) + .updateTime(now) + .build(); + getSalaryFormulaService(user).update(formulaPO); + }); + } + + @Override + public void deleteItems(List itemIds) { + if (CollectionUtils.isEmpty(itemIds)) { + return; + } + + SalaryItemServiceImpl.UsingItem usingItem = getSalaryItemService(user).getUsingItem(); + List usingCodes = usingItem.getUsingCodes(); + + // ヨ∵莎蕁合 + List variableItemPOS = listByIds(itemIds); + if (CollectionUtils.isEmpty(variableItemPOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "育莚鐚羌莎蕁合筝絖綏画←")); + } + List codes = SalaryEntityUtil.properties(variableItemPOS, VariableItemPO::getCode, Collectors.toList()); + if (CollectionUtils.containsAny(usingCodes, codes)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "綣閫e篏睡莚ユ貴莎蕁合鐚筝莅後")); + } + // ヨ∽貴罅f筝綏俄戎羌莎蕁合 + List usingVariableItemIds = getVariableArchiveItemService(user).listUsingItems(); + if (CollectionUtils.containsAny(usingVariableItemIds, itemIds)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "羌莎罅f筝罩e篏睡莚ヨ莎蕁合鐚筝莅後")); + } + itemIds.stream().forEach(id -> getVariableItemMapper().delete(VariableItemPO.builder().id(id).build())); + ; + } + + @Override + public VariableItemListDTO getDetail(Long id) { + if (id == null) { + return null; + } + VariableItemPO variableItemPO = getVariableItemMapper().getById(id); + return VariableItemListDTO.builder() + .id(variableItemPO.getId()) + .name(variableItemPO.getName()) + .dataType(variableItemPO.getDataType()) + .build(); + } +} diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ff055b89e..7a3c052be 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -45,6 +45,11 @@ public class SalarySysConstant { * 絲膽 */ public static final String PRE_SIGN_ENCRYPT = "AES_"; + + /** + * 綏ヨ綏ュ絲膽 + */ + public static final String SALARY_BILL_PRE_SIGN_ENCRYPT = "HSE_"; /** * key */ @@ -111,6 +116,11 @@ public class SalarySysConstant { */ public static final String SALARY_BILL_VIEWING_LIMIT_MONTH = "SALARY_BILL_VIEWING_LIMIT_MONTH"; + /** + * 綏ヨヨ∫倶篁順瓜 + */ + public static final String SALARY_BILL_LIMIT_MONTH_TYPE = "SALARY_BILL_LIMIT_MONTH_TYPE"; + /** * 薤罨≧ョ紊絨筝醇ョ綏ヨ */ @@ -145,4 +155,66 @@ public class SalarySysConstant { * 莎胼綏ヨ筝腮g軸箙>査丞ず倶 */ public static final String TAX_AGENT_SHOW_STATUS = "taxAgentShowStatus"; + + + /** + * ヨ;綣膽絖鐚0鐚渇 1鐚綣 + */ + public static final String REPORT_CACHE = "REPORT_CACHE"; + + /** + * ヨ;膸膸膠糸鐚null/0 鐚悟句膸篆≧ 1鐚絎句膸篆≧ + */ + public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; + + /** + * 莎膸蕁級∽丞ず膠糸 + */ + public static final String SALARY_DETAILS_REPORT_SHOW_TYPE = "SALARY_DETAILS_REPORT_SHOW_TYPE"; + + /** + * 筝紙∴侃垸莚 1綣 + */ + public static final String OPEN_SECONDARY_ACCOUNT = "openSecondaryAccount"; + + + /** + * 絮腓肴莎悟絎≧壕丞舟 + */ + public static final String SHOW_SALARY_ACCT_APPROVAL = "SHOW_SALARY_ACCT_APPROVAL"; + + /** + * 綣悟莅医絎≧劫 + */ + public static final String SALARY_APPROVAL_STATUS = "SALARY_APPROVAL_STATUS"; + + /** + * 綣絎≧合悟莅医莅御綵罅 + */ + public static final String APPROVAL_CAN_MANUAL_FILE_STATUS = "APPROVAL_CAN_MANUAL_FILE_STATUS"; + + + /** + * 綣絎≧合悟莅医莅檎井悟 + */ + public static final String APPROVAL_CAN_RE_CALC_STATUS = "APPROVAL_CAN_RE_CALC_STATUS"; + + + /** + * 絎≧号腮莎桁莅娯信号悟井 + */ + public static final String APPROVAL_CAN_EDIT_RESULT_STATUS = "APPROVAL_CAN_EDIT_RESULT_STATUS"; + + /** + * 膸膸綽,0鐚渇 1鐚綣 + */ + public static final String SHOT_EMP_BTN = "SHOT_EMP_BTN"; + + /** + * 綽ф狗雁 + */ + public static final String SHOT_EMP_TIME_TYPE = "SHOT_EMP_TIME_TYPE"; + + //ょ罨≧井,0鐚渇 1鐚綣 + public static final String ATTENDANCE_SERIAL_COLLECTION_BTN = "ATTENDANCE_SERIAL_COLLECTION_BTN"; } diff --git a/src/com/engine/salary/sys/enums/OrderRuleEnum.java b/src/com/engine/salary/sys/enums/OrderRuleEnum.java index 560cc51a8..2d60f13bf 100644 --- a/src/com/engine/salary/sys/enums/OrderRuleEnum.java +++ b/src/com/engine/salary/sys/enums/OrderRuleEnum.java @@ -18,7 +18,8 @@ public enum OrderRuleEnum implements BaseEnum { LASTNAME("e.lastName", "篋阪腱", 1), DEPTNAME("d.departmentname", "腱", 1), SUBCOMNAME("c.subcompanyname", "腱", 1), - SHOWORDEROFDEPTTREE("d.showOrderOfTree", "膸膸", 1); + SHOWORDEROFDEPTTREE("d.showOrderOfTree", "膸膸", 1), + WORKCODE("e.workcode", "綏ュ", 1); private String value; diff --git a/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java new file mode 100644 index 000000000..a375c2314 --- /dev/null +++ b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java @@ -0,0 +1,57 @@ +package com.engine.salary.sys.enums; + +import com.engine.salary.enums.BaseEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 綽ф狗雁合瓜 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public enum ShotTimeTypeEnum implements BaseEnum { + + salaryFirstDate("salaryFirstDate", "莎絮膃筝紊", 1), + salaryLastDate("salaryLastDate", "莎絮筝紊", 1), + salaryCycleFromDate("salaryCycleFromDate", "莎莎桁ユ", 1), + salaryCycleEndDate("salaryCycleEndDate", "莎膸ユ", 1); + + private String value; + + private String defaultLabel; + + private int labelId; + + + ShotTimeTypeEnum(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 ShotTimeTypeEnum parseByValue(String value) { + for (ShotTimeTypeEnum e : ShotTimeTypeEnum.values()) { + if (StringUtils.equals(e.getValue(), value)) { + return e; + } + } + return salaryCycleFromDate; + } +} diff --git a/src/com/engine/salary/sys/service/SalarySysConfService.java b/src/com/engine/salary/sys/service/SalarySysConfService.java index 91eab5317..6b78ceca2 100644 --- a/src/com/engine/salary/sys/service/SalarySysConfService.java +++ b/src/com/engine/salary/sys/service/SalarySysConfService.java @@ -40,6 +40,8 @@ public interface SalarySysConfService { SalarySysConfPO getOneByCode(String code); + String getValueByCode(String code); + List listSome(SalarySysConfPO build); void save(SalarySysConfPO salarySysConfPO); diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index 27272acfe..e517b6c06 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; +import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.salaryacct.po.ExcelAcctResultPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; @@ -25,10 +26,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; -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.datacollection.SpecialAddDeductionMapper; +import com.engine.salary.mapper.datacollection.*; import com.engine.salary.mapper.salaryacct.ExcelAcctResultMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; import com.engine.salary.mapper.siaccount.ExcelInsuranceDetailMapper; @@ -41,6 +39,8 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper; +import com.engine.salary.service.VariableArchiveItemService; +import com.engine.salary.service.impl.VariableArchiveItemServiceImpl; import com.engine.salary.sys.config.SysConfig; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.param.AppSettingSaveParam; @@ -163,6 +163,9 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return MapperProxyFactory.getProxy(TaxDeclarationValueMapper.class); } + private VariableArchiveItemService getVariableArchiveItemService(User user) { + return ServiceUtil.getService(VariableArchiveItemServiceImpl.class, user); + } /** * 篏荀恰ュ @@ -222,6 +225,12 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return getSalarySysConfMapper().getOneByCode(code); } + @Override + public String getValueByCode(String code) { + SalarySysConfPO confPO = getSalarySysConfMapper().getOneByCode(code); + return confPO == null ? "" : confPO.getConfValue(); + } + @Override public List listSome(SalarySysConfPO po) { return getSalarySysConfMapper().listSome(po); @@ -1051,12 +1060,16 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe if (CollectionUtils.isNotEmpty(otherDeductionPos)) { otherDeductionPos.forEach(po -> { if (OpenEnum.OFF.getValue().equals(isOpenEncrypt)) { + po.setFreeIncome(AESEncryptUtil.closeEncryptSetting(po.getFreeIncome(), sysConfPo)); + po.setDerateDeduction(AESEncryptUtil.closeEncryptSetting(po.getDerateDeduction(), sysConfPo)); po.setBusinessHealthyInsurance(AESEncryptUtil.closeEncryptSetting(po.getBusinessHealthyInsurance(), sysConfPo)); po.setTaxDelayEndowmentInsurance(AESEncryptUtil.closeEncryptSetting(po.getTaxDelayEndowmentInsurance(), sysConfPo)); po.setOtherDeduction(AESEncryptUtil.closeEncryptSetting(po.getOtherDeduction(), sysConfPo)); po.setDeductionAllowedDonation(AESEncryptUtil.closeEncryptSetting(po.getDeductionAllowedDonation(), sysConfPo)); po.setPrivatePension(AESEncryptUtil.closeEncryptSetting(po.getPrivatePension(), sysConfPo)); } else { + po.setFreeIncome(AESEncryptUtil.encrypt(po.getFreeIncome())); + po.setDerateDeduction(AESEncryptUtil.encrypt(po.getDerateDeduction())); po.setBusinessHealthyInsurance(AESEncryptUtil.encrypt(po.getBusinessHealthyInsurance())); po.setTaxDelayEndowmentInsurance(AESEncryptUtil.encrypt(po.getTaxDelayEndowmentInsurance())); po.setOtherDeduction(AESEncryptUtil.encrypt(po.getOtherDeduction())); @@ -1266,15 +1279,42 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return 1; }); + Future submit16 = fixedThreadPool.submit(() -> { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + List variableArchiveItemPOS = getVariableArchiveItemService(user).listAll(); + if (CollectionUtils.isNotEmpty(variableArchiveItemPOS)) { + variableArchiveItemPOS.forEach(po -> { + if (OpenEnum.OFF.getValue().equals(isOpenEncrypt)) { + po.setItemValue(AESEncryptUtil.closeEncryptSetting(po.getItemValue(), sysConfPo)); + } else { + po.setItemValue(AESEncryptUtil.encrypt(po.getItemValue())); + } + }); + List> partition = Lists.partition(variableArchiveItemPOS, 10); + VariableArchiveItemMapper mapper = sqlSession.getMapper(VariableArchiveItemMapper.class); + partition.forEach(mapper::updateBatchSelective); + sqlSession.commit(); + log.info("finish hrsa_variable_archive_item"); + } + } catch (Exception e) { + sqlSession.rollback(); + log.error("fail hrsa_variable_archive_item", e); + return 0; + } finally { + sqlSession.close(); + } + return 1; + }); - int flag = submit.get() + submit1.get() + submit2.get() + submit3.get() + submit4.get() + submit5.get() + submit6.get() + submit7.get() + submit8.get() + submit9.get() + submit10.get() + submit11.get() + submit12.get() + submit13.get() + submit14.get()+ submit15.get(); - if (flag == 16) { + int flag = submit.get() + submit1.get() + submit2.get() + submit3.get() + submit4.get() + submit5.get() + submit6.get() + submit7.get() + submit8.get() + submit9.get() + submit10.get() + submit11.get() + submit12.get() + submit13.get() + submit14.get()+ submit15.get()+ submit16.get(); + if (flag == 17) { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "success", 30); } else { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "fail", 30); } Util_DataCache.clearVal(AES_ENCRYPT_IN_PROGRESS); - return flag == 16; + return flag == 17; } catch (Exception e) { Util_DataCache.setObjVal(ENCRYPT_IN_PROGRESS + progressId, "fail", 30); Util_DataCache.clearVal(AES_ENCRYPT_IN_PROGRESS); diff --git a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java index 1b4c32c84..6c817ed4e 100644 --- a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java +++ b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java @@ -3,12 +3,15 @@ package com.engine.salary.timer; import com.engine.common.util.ServiceUtil; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.mapper.siarchives.FundSchemeMapper; import com.engine.salary.mapper.siarchives.OtherSchemeMapper; @@ -22,14 +25,12 @@ import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,25 +39,28 @@ import java.util.stream.Collectors; * @date 2023/08/14 9:30 * @description 罩ヤ査腓鞘胼罅f莎罅f筝阪夔紮ユ絖罧居companystartdate鐚 */ +@Slf4j public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { private SalaryArchiveService getSalaryArchiveService(User user) { - return ServiceUtil.getService(SalaryArchiveServiceImpl.class,user); + return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return ServiceUtil.getService(SalaryEmployeeServiceImpl.class,user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } private SIArchivesService getSIArchivesService(User user) { - return ServiceUtil.getService(SIArchivesServiceImpl.class,user); + return ServiceUtil.getService(SIArchivesServiceImpl.class, user); } private String syncInsuranceArchive; - private String syncSalaryArchive; + private String allStayAddToPay; + private String allGotoFixed; + private SalaryArchiveBiz getSalaryArchiveMapper = new SalaryArchiveBiz(); private SocialSchemeMapper getSocialSchemeMapper() { @@ -72,14 +76,13 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { } - @Override public void execute() { User user = new User(); user.setUid(1); user.setLoginid("sysadmin"); - if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive,"false")) { + if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive, "false")) { // 罩ョぞ篆胼罅f // キ腓鞘腱銀胼筝莎桁膽雁些篁紙鋇筝筝榊榊腓鞘罅f筝肢;po List needSyncInsuranceBaseInfoList = getSIArchivesService(user).listStartDateIsNull(Collections.emptyList()); @@ -125,7 +128,7 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { }); } - if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive,"false")) { + if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive, "false")) { // 罩ヨ莎罅f // キ莎罅f莎桁ヤ減腥坂緇絎莎罅f List salaryArchiveList = getSalaryArchiveService(user).listPayStartDateIsNull(SalaryArchiveListTypeEnum.PENDING.getValue()); @@ -154,6 +157,27 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { getSalaryArchiveMapper.batchUpdate(needUpdateArchiveList); } + + //筝絎 + if (StringUtils.isNotBlank(allStayAddToPay) && !StringUtils.equals(allStayAddToPay, "false")) { + List allBaseInfoList = getSIArchivesService(user).listAll(); + List ids = allBaseInfoList.stream() + .filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue())) + .map(InsuranceArchivesBaseInfoPO::getId) + .collect(Collectors.toList()); + Map map = getSIArchivesService(user).stayAddToPay(ids); + log.info("腓鞘筝絎膸:" + map); + } + + if (StringUtils.isNotBlank(allGotoFixed) && !StringUtils.equals(allGotoFixed, "false")) { + SalaryArchiveQueryParam queryParam = SalaryArchiveQueryParam.builder().build(); + queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue())); + List salaryArchiveList = getSalaryArchiveService(user).getSalaryArchiveList(queryParam); + List ids = SalaryEntityUtil.properties(salaryArchiveList, SalaryArchiveListDTO::getId, Collectors.toList()); + Map map = getSalaryArchiveService(user).gotoFixed(ids); + log.info("莎筝絎膸:" + map); + } + } } diff --git a/src/com/engine/salary/timer/HrmSnapshotJob.java b/src/com/engine/salary/timer/HrmSnapshotJob.java new file mode 100644 index 000000000..ac0a7a091 --- /dev/null +++ b/src/com/engine/salary/timer/HrmSnapshotJob.java @@ -0,0 +1,54 @@ +package com.engine.salary.timer; + +import cn.hutool.core.util.StrUtil; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +@Slf4j +public class HrmSnapshotJob extends BaseCronJob { + + //絎膈桁狗 + private String appointSnapshotTime; + + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + + try { + List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); + + Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); + + //ゅュ辱 + getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); + + hrmSnapshotPOS.forEach(hrmSnapshotPO -> { + + hrmSnapshotPO.setId(IdGenerator.generate()); + hrmSnapshotPO.setSnapshotTime(snapshotTime); + + getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); + + }); + }catch (Exception e){ + log.error("綽уけ茣", e); + } + } + +} diff --git a/src/com/engine/salary/util/SalaryTokenUtil.java b/src/com/engine/salary/util/SalaryTokenUtil.java index 68446cf30..653a0a821 100644 --- a/src/com/engine/salary/util/SalaryTokenUtil.java +++ b/src/com/engine/salary/util/SalaryTokenUtil.java @@ -2,6 +2,8 @@ package com.engine.salary.util; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.engine.salary.encrypt.AESEncryptUtil; +import com.engine.salary.entity.salaryBill.param.SalaryBillGetTokenParam; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.db.IdGenerator; import org.apache.commons.lang3.StringUtils; @@ -76,14 +78,29 @@ public class SalaryTokenUtil { * * @return */ - public static Map GetToken(Long uid) { + public static Map GetToken(SalaryBillGetTokenParam param) { + String uid = ""; + if (StringUtils.isNotBlank(param.getSalaryCode())) { + uid = AESEncryptUtil.decrypt4SalaryBill(param.getSalaryCode()); + } else { + uid = param.getRecipient(); + } Map heads = new HashMap<>(); + if (StringUtils.isBlank(uid)) { + return heads; + } BaseBean baseBean = new BaseBean(); + // キhttps + String isHttps = baseBean.getPropValue("hrmSalaryBillToken", "is_https"); + String httpKey = (StringUtils.isNotBlank(isHttps) && isHttps.equals("true")) ? "https://" : "http://"; RecordSet rs = new RecordSet(); Map resultMap = new HashMap<>(); // キappidid String appidId = baseBean.getPropValue("hrmSalaryBillToken", "appid_id"); + if (StringUtils.isBlank(appidId)) { + return resultMap; + } String ip = baseBean.getPropValue("hrmSalaryBillToken", "ip"); rs.execute("select APPID from ECOLOGY_BIZ_EC where id =" + appidId); // キappid @@ -96,10 +113,12 @@ public class SalaryTokenUtil { String sql= " SELECT conf_value FROM hrsa_salary_sys_conf t WHERE delete_type = 0 AND conf_key = 'SALARY_TOKEN_SECRET'"; rs.execute(sql); String secret = ""; - if (rs.next() && StringUtils.isNotEmpty(rs.getString("conf_value"))) { + if (rs.next() && StringUtils.isNotBlank(rs.getString("conf_value"))) { // 篁井綺筝secret secret = rs.getString("conf_value"); } else { + sql= " update hrsa_salary_sys_conf set delete_type=1 WHERE delete_type = 0 AND conf_key in( 'SALARY_TOKEN_SECRET', 'SALARY_TOKEN_SPK')"; + rs.execute(sql); // 羈キsecret // キ綵綣膤紫RSA絲 String cpk = new RSA().getRSA_PUB(); @@ -107,7 +126,7 @@ public class SalaryTokenUtil { heads.put("appid", appid); heads.put("cpk", cpk); // 莪ECOLOGY膤紫・h茵羈 - String data = post("http://" + ip + "/api/ec/dev/auth/regist", null, heads); + String data = post(httpKey + ip + "/api/ec/dev/auth/regist", null, heads); Map datas = JSONObject.parseObject(data, new TypeReference>() {}); // ECOLOGY菴膤紫 String spk = (String) (datas.get("spk")); @@ -128,7 +147,7 @@ public class SalaryTokenUtil { heads.put("appid", appid); heads.put("secret", secret); //莪ECOLOGY膤紫・h茵羈 - String data2 = post("http://" + ip + "/api/ec/dev/auth/applytoken", null, heads); + String data2 = post(httpKey + ip + "/api/ec/dev/auth/applytoken", null, heads); // 菴膃筝罩ユ絵莅後区spkュuserid菴茵絲絲 sql= " SELECT conf_value FROM hrsa_salary_sys_conf t WHERE delete_type = 0 AND conf_key = 'SALARY_TOKEN_SPK'"; rs.execute(sql); diff --git a/src/com/engine/salary/util/excel/ExcelUtilPlus.java b/src/com/engine/salary/util/excel/ExcelUtilPlus.java index 484491146..07de26c60 100644 --- a/src/com/engine/salary/util/excel/ExcelUtilPlus.java +++ b/src/com/engine/salary/util/excel/ExcelUtilPlus.java @@ -139,7 +139,7 @@ public class ExcelUtilPlus { rowZeroCell.setCellValue(columnGroupItem.getText().toString()); rowZeroCell.setCellStyle(titleCellStyle); //莅丞舟絎 - sheet.setColumnWidth(i, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); patternList.add(columnGroupItem.getPattern()); } @@ -266,7 +266,7 @@ public class ExcelUtilPlus { //莅丞舟絎 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -353,7 +353,7 @@ public class ExcelUtilPlus { //莅丞舟絎 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -458,7 +458,7 @@ public class ExcelUtilPlus { //莅丞舟絎 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -592,7 +592,7 @@ public class ExcelUtilPlus { rowOneCell.setCellValue(columnGroupItem.getText().toString()); rowOneCell.setCellStyle(titleCellStyle); //莅丞舟絎 - sheet.setColumnWidth(startIndex, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); startIndex++; patternList.add(columnGroupItem.getPattern()); } else { @@ -614,7 +614,7 @@ public class ExcelUtilPlus { subHeader.setCellValue(childrenItem.getText().toString()); subHeader.setCellStyle(titleCellStyle); //莅丞舟絎 - sheet.setColumnWidth(startIndex + j, Math.max(12, childrenItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex + j, Math.min(255, Math.max(12, childrenItem.getText().length() * 4)) * 256); patternList.add(childrenItem.getPattern()); } @@ -793,7 +793,7 @@ public class ExcelUtilPlus { rowOneCell.setCellValue(columnGroupItem.getText().toString()); rowOneCell.setCellStyle(titleCellStyle); //莅丞舟絎 - sheet.setColumnWidth(startIndex, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); startIndex++; } else { List childrenList = columnGroupItem.getChildren(); @@ -814,7 +814,7 @@ public class ExcelUtilPlus { subHeader.setCellValue(childrenItem.getText().toString()); subHeader.setCellStyle(titleCellStyle); //莅丞舟絎 - sheet.setColumnWidth(startIndex + j, Math.max(12, childrenItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex + j, Math.min(255, Math.max(12, childrenItem.getText().length() * 4)) * 256); } startIndex += childrenList.size(); diff --git a/src/com/engine/salary/util/page/PageInfo.java b/src/com/engine/salary/util/page/PageInfo.java index ff869925f..5f8b1076e 100644 --- a/src/com/engine/salary/util/page/PageInfo.java +++ b/src/com/engine/salary/util/page/PageInfo.java @@ -17,6 +17,11 @@ public class PageInfo extends com.engine.salary.component.PageInfo { this.columns.addAll(columns); } + public void clearAndSetColumns(List columns) { + this.columns.clear(); + this.columns.addAll(columns); + } + List columns = new ArrayList<>(); List dataSource = new ArrayList<>(); diff --git a/src/com/engine/salary/util/valid/SalaryCardUtil.java b/src/com/engine/salary/util/valid/SalaryCardUtil.java index d0dc2bf9e..fbd76bc2e 100644 --- a/src/com/engine/salary/util/valid/SalaryCardUtil.java +++ b/src/com/engine/salary/util/valid/SalaryCardUtil.java @@ -133,7 +133,6 @@ public class SalaryCardUtil { return validate18Idcard(idcard); } return false; - } /** @@ -471,4 +470,42 @@ public class SalaryCardUtil { } return a; } + + /** + * 薨莚羝羮渇茵莚 + * + * @param idcard + * 荳篁処 + * @return 羈菴true鐚菴false + */ + public static boolean checkHMPassportIdNum(String idcard) { + + if (idcard == null || "".equals(idcard)) { + return false; + } + + if (idcard.length() == 9) { + return true; + } + + return false; + } + + /** + * 薨莚佀江茵莚 + * @param idcard + * @return + */ + public static boolean checkTPassportIdNum(String idcard) { + + if (idcard == null || "".equals(idcard)) { + return false; + } + + if (idcard.length() == 8) { + return true; + } + + return false; + } } diff --git a/src/com/engine/salary/web/OtherDeductionController.java b/src/com/engine/salary/web/OtherDeductionController.java index 251507f68..fb40b0fff 100644 --- a/src/com/engine/salary/web/OtherDeductionController.java +++ b/src/com/engine/salary/web/OtherDeductionController.java @@ -1,8 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.datacollection.dto.OtherDeductionListDTO; -import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; +import com.engine.salary.entity.datacollection.dto.*; import com.engine.salary.entity.datacollection.param.*; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryDateUtil; @@ -279,8 +278,8 @@ public class OtherDeductionController { } /** - * @description 膽莨銀腮i * @return String + * @description 膽莨銀腮i * @author Harryxzy * @date 2022/10/26 9:41 */ @@ -293,8 +292,8 @@ public class OtherDeductionController { } /** - * @description キ銀腮iゆ井 * @return String + * @description キ銀腮iゆ井 * @author Harryxzy * @date 2022/10/31 13:42 */ @@ -307,8 +306,8 @@ public class OtherDeductionController { } /** - * @description 医産銀腮i * @return String + * @description 医産銀腮i * @author Harryxzy * @date 2022/10/27 14:41 */ @@ -321,8 +320,8 @@ public class OtherDeductionController { } /** - * @description ゆ銀腮i * @return String + * @description ゆ銀腮i * @author Harryxzy * @date 2022/10/27 14:41 */ @@ -335,8 +334,8 @@ public class OtherDeductionController { } /** - * @description 筝羝腥阪銀腮i * @return null + * @description 筝羝腥阪銀腮i * @author Harryxzy * @date 2022/10/27 15:15 */ @@ -351,9 +350,190 @@ public class OtherDeductionController { @POST @Path("/extendToLastMonth") @Produces(MediaType.APPLICATION_JSON) - public String extendToLastMonth(@Context HttpServletRequest request, @Context HttpServletResponse response, - @RequestBody OtherDeductionExtendLastParam param) { + public String extendToLastMonth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionExtendLastParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getOtherDeductionWrapper(user)::extendToLastMonth, param); } + + //腮蘂茵 + @POST + @Path("/freeIncomeList") + @Produces(MediaType.APPLICATION_JSON) + public String freeIncomeList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::freeIncomeList, param); + } + + + @POST + @Path("/healthInsuranceList") + @Produces(MediaType.APPLICATION_JSON) + public String healthInsuranceList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::healthInsuranceList, param); + } + + + @POST + @Path("/endowmentInsuranceList") + @Produces(MediaType.APPLICATION_JSON) + public String endowmentInsuranceList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::endowmentInsuranceList, param); + } + + @POST + @Path("/grantDonationList") + @Produces(MediaType.APPLICATION_JSON) + public String grantDonationList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::grantDonationList, param); + } + + + @POST + @Path("/derateDeductionList") + @Produces(MediaType.APPLICATION_JSON) + public String derateDeductionList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::derateDeductionList, param); + } + + + @POST + @Path("/otherDerateDeductionList") + @Produces(MediaType.APPLICATION_JSON) + public String otherDerateDeductionList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::otherDerateDeductionList, param); + } + + @POST + @Path("/personalPensionList") + @Produces(MediaType.APPLICATION_JSON) + public String personalPensionList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::personalPensionList, param); + } + + + @POST + @Path("/saveFreeIncome") + @Produces(MediaType.APPLICATION_JSON) + public String saveFreeIncome(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody FreeIncomeSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveFreeIncome, param); + } + + @POST + @Path("/saveHealthInsurance") + @Produces(MediaType.APPLICATION_JSON) + public String saveHealthInsurance(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody HealthInsuranceSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveHealthInsurance, param); + } + + + @POST + @Path("/saveEndowmentInsurance") + @Produces(MediaType.APPLICATION_JSON) + public String saveEndowmentInsurance(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EndowmentInsuranceSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveEndowmentInsurance, param); + } + + @POST + @Path("/saveGrantDonation") + @Produces(MediaType.APPLICATION_JSON) + public String saveGrantDonation(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody GrantDonationSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveGrantDonation, param); + } + + @POST + @Path("/saveDerateDeduction") + @Produces(MediaType.APPLICATION_JSON) + public String saveDerateDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DerateDeductionSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveDerateDeduction, param); + } + + + @POST + @Path("/saveOtherDerateDeduction") + @Produces(MediaType.APPLICATION_JSON) + public String saveOtherDerateDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDerateDeductionSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::saveOtherDerateDeduction, param); + } + + @POST + @Path("/savePersonalPension") + @Produces(MediaType.APPLICATION_JSON) + public String savePersonalPension(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PersonalPensionSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::savePersonalPension, param); + } + + + @POST + @Path("/deleteFreeIncome") + @Produces(MediaType.APPLICATION_JSON) + public String deleteFreeIncome(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteFreeIncome, param); + } + + @POST + @Path("/deleteHealthInsurance") + @Produces(MediaType.APPLICATION_JSON) + public String deleteHealthInsurance(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteHealthInsurance, param); + } + + + @POST + @Path("/deleteEndowmentInsurance") + @Produces(MediaType.APPLICATION_JSON) + public String deleteEndowmentInsurance(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteEndowmentInsurance, param); + } + + @POST + @Path("/deleteGrantDonation") + @Produces(MediaType.APPLICATION_JSON) + public String deleteGrantDonation(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteGrantDonation, param); + } + + @POST + @Path("/deleteDerateDeduction") + @Produces(MediaType.APPLICATION_JSON) + public String deleteDerateDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteDerateDeduction, param); + } + + + @POST + @Path("/deleteOtherDerateDeduction") + @Produces(MediaType.APPLICATION_JSON) + public String deleteOtherDerateDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deleteOtherDerateDeduction, param); + } + + + + @POST + @Path("/deletePersonalPension") + @Produces(MediaType.APPLICATION_JSON) + public String deletePersonalPension(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionDetailDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getOtherDeductionWrapper(user)::deletePersonalPension, param); + } + } diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index bcf226914..89772a896 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -133,7 +133,7 @@ public class SISchemeController { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("insuranceSchemeReqParam", insuranceSchemeReqParam); - return new ResponseResult, Map>(user).run(getService(user)::update, map); + return new ResponseResult,String>(user).run(getService(user)::update, map); } /** diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index fb89e1e69..64f5a7bbd 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -168,7 +168,7 @@ public class SalaryAcctController { @GET @Path("/compareSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::compareSobConfig, id); } @@ -182,7 +182,7 @@ public class SalaryAcctController { @GET @Path("/updateSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::updateSobConfig, id); } @@ -248,13 +248,13 @@ public class SalaryAcctController { return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::checkTaxAgent, param.getSalaryAcctRecordId()); } - //傑域莎悟篋阪筝腮g軸箙>査 + //傑域莎悟篋阪 @POST - @Path("/acctemployee/refreshTaxAgent") + @Path("/acctemployee/refresh") @Produces(MediaType.APPLICATION_JSON) public String refreshTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmpRefreshTaxAgentParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::refreshTaxAgent, param.getSalaryAcctRecordId()); + return new ResponseResult(user).run(getSalaryAcctEmployeeWrapper(user)::refresh, param.getSalaryAcctRecordId()); } //篁ッ罸筝鎞羞糸莎悟篋阪 @@ -476,6 +476,14 @@ public class SalaryAcctController { } + @POST + @Path("/acctresult/lock") + @Produces(MediaType.APPLICATION_JSON) + public String lock(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultLockParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctResultWrapper(user)::lock, param); + } + //贋域莎蕁合絎倶 @POST @Path("/acctresult/updateLockStatus") @@ -631,9 +639,9 @@ public class SalaryAcctController { @POST @Path("/acctresult/cacheImportField") @Produces(MediaType.APPLICATION_JSON) - public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) { + public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param.getSalaryItems()); + return new ResponseResult(user).run(getSalaryAcctExcelService(user)::cacheImportField, param); } // 莎悟絲弱阪罧窮絖 @@ -678,7 +686,7 @@ public class SalaryAcctController { @Produces(MediaType.APPLICATION_JSON) public String exportTemplateList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); + return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); } diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 90da1e8d9..ad775cc58 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -539,6 +539,30 @@ public class SalaryArchiveController { if (StringUtils.isNotBlank(extSalaryArchiveList)) { param.setExtSalaryArchiveList("true".equals(extSalaryArchiveList)); } + String payStartDateStartDateStr = request.getParameter("payStartDateStartDateStr"); + if (StringUtils.isNotBlank(payStartDateStartDateStr) && SalaryDateUtil.checkDay(payStartDateStartDateStr)) { + param.setPayStartDateStartDate(SalaryDateUtil.stringToDate(payStartDateStartDateStr)); + } + String payStartDateEndDateStr = request.getParameter("payStartDateEndDateStr"); + if (StringUtils.isNotBlank(payStartDateEndDateStr) && SalaryDateUtil.checkDay(payStartDateEndDateStr)) { + param.setPayStartDateEndDate(SalaryDateUtil.stringToDate(payStartDateEndDateStr)); + } + String payEndDateStartDateStr = request.getParameter("payEndDateStartDateStr"); + if (StringUtils.isNotBlank(payEndDateStartDateStr) && SalaryDateUtil.checkDay(payEndDateStartDateStr)) { + param.setPayEndDateStartDate(SalaryDateUtil.stringToDate(payEndDateStartDateStr)); + } + String payEndDateEndDateStr = request.getParameter("payEndDateEndDateStr"); + if (StringUtils.isNotBlank(payEndDateEndDateStr) && SalaryDateUtil.checkDay(payEndDateEndDateStr)) { + param.setPayEndDateEndDate(SalaryDateUtil.stringToDate(payEndDateEndDateStr)); + } + String adjustSalaryStartDateStr = request.getParameter("adjustSalaryStartDate"); + if (StringUtils.isNotBlank(adjustSalaryStartDateStr) && SalaryDateUtil.checkDay(adjustSalaryStartDateStr)) { + param.setAdjustSalaryStartDate(SalaryDateUtil.stringToDate(adjustSalaryStartDateStr)); + } + String adjustSalaryEndDate = request.getParameter("adjustSalaryEndDate"); + if (StringUtils.isNotBlank(adjustSalaryEndDate) && SalaryDateUtil.checkDay(adjustSalaryEndDate)) { + param.setAdjustSalaryEndDate(SalaryDateUtil.stringToDate(adjustSalaryEndDate)); + } return param; } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 94a2ea915..64437a579 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -642,12 +642,12 @@ public class SalaryBillController { * @param * @return */ - @GET + @POST @Path("/getToken") @Produces(MediaType.APPLICATION_JSON) - public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "uid") Long uid) { + public String getToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryBillGetTokenParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, uid); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::getToken, param); } /** @@ -675,16 +675,7 @@ public class SalaryBillController { @Produces(MediaType.APPLICATION_JSON) public String mySalaryBill(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryInfoId") Long salaryInfoId) { User user = null; - String recipient = request.getParameter("recipient"); - String em_auth_userid = request.getParameter("em_auth_userid"); - log.info("salary recipient: {} em_auth_userid: {}", recipient, em_auth_userid); - if (StringUtils.isNotBlank(recipient) && NumberUtils.isCreatable(recipient)) { - user = new User(Integer.parseInt(recipient)); - } else if (StringUtils.isNotBlank(em_auth_userid) && NumberUtils.isCreatable(em_auth_userid)) { - user = new User(Integer.parseInt(em_auth_userid)); - } else { - user = HrmUserVarify.getUser(request, response); - } + user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalarySendWrapper(user)::mySalaryBill, salaryInfoId); } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 94de05d28..5f366bc2b 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,8 +1,15 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.entity.browser.dto.BrowserDataDTO; import com.engine.salary.entity.browser.param.BrowserDataQueryParam; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.util.page.PageInfo; @@ -59,4 +66,118 @@ public class SalaryCommonController { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getBrowserData, param); } + + /** + * 蕁級∽─粋丞舟 + * + * @param param + * @return + */ + @POST + @Path("/pageList/save/setting") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); + } + + @POST + @Path("/pageList/reset/setting") + @Produces(MediaType.APPLICATION_JSON) + public String resetPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingResetParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::resetPageListSetting, param); + } + + /** + * 蕁級∫莅ゅ + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/get/setting") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListSettingQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); + } + + /** + * 蕁級∽─粋; + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/get") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param); + } + + /** + * 蕁級∽─水茵 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/list") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); + } + + @POST + @Path("/pageList/template/pageList") + @Produces(MediaType.APPLICATION_JSON) + public String getTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getTemplates, param); + } + + /** + * 蕁級∽─水茵 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/save") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + } + + @POST + @Path("/pageList/template/delete") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateDeleteParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::deletePageListTemplate, param); + } + + + /** + * 蕁級∽─水茵 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/change") + @Produces(MediaType.APPLICATION_JSON) + public String changeTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateChangeParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::changePageListTemplate, param); + } } diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index f61b3d866..d8c53e372 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -2,8 +2,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.SalarySobExtRangePO; +import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO; @@ -74,6 +76,10 @@ public class SalarySobController { return ServiceUtil.getService(SalarySobBackItemWrapper.class, user); } + private SalaryApprovalWrapper getSalaryApprovalWrapper(User user) { + return ServiceUtil.getService(SalaryApprovalWrapper.class, user); + } + private SalarySobTaxReportRuleWrapper getSalarySobTaxReportRuleWrapper(User user) { return ServiceUtil.getService(SalarySobTaxReportRuleWrapper.class, user); } @@ -267,6 +273,17 @@ public class SalarySobController { return new ResponseResult(user).run(getSalarySobRangeWrapper(user)::save, saveParam); } + /** + * 篆絖莎茣絅篋阪 + */ + @POST + @Path("/range/edit") + @Produces(MediaType.APPLICATION_JSON) + public String editSalarySobRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobRangeSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySobRangeWrapper(user)::edit, saveParam); + } + /** * よ莎茣絅篋阪 */ @@ -713,4 +730,82 @@ public class SalarySobController { /**********************************♂茹 end*********************************/ + /**********************************莎絎≧壕 start*********************************/ + + /** + * 莎絎≧壕茵 + */ + @POST + @Path("/salaryApproval/getForm") + @Produces(MediaType.APPLICATION_JSON) + public String salaryApprovalForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryApprovalQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::salaryApprovalForm, queryParam); + } + + /** + * 篆絖莎絎≧壕茵 + */ + @POST + @Path("/salaryApproval/saveForm") + @Produces(MediaType.APPLICATION_JSON) + public String saveSalaryApprovalForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryApprovalDTO saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::saveSalaryApprovalForm, saveParam); + } + + /** + * 莎絎≧劫莎蕁合 + */ + @POST + @Path("/salaryApproval/listSalaryItem") + @Produces(MediaType.APPLICATION_JSON) + public String listSalaryApprovalItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalItem, queryParam); + } + + /** + * 号悟莅医idキ絎≧剛拭 + */ + @GET + @Path("/salaryApproval/getApprovalInfoByRecordId") + @Produces(MediaType.APPLICATION_JSON) + public String getApprovalInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryAcctRecordId")Long salaryAcctRecordId ) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::getApprovalInfoByRecordId, salaryAcctRecordId); + } + + /** + * キ絎≧号区莎悟膸 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/salaryApproval/acctresult/list") + @Produces(MediaType.APPLICATION_JSON) + public String listSalaryApprovalAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalAcctResult, param); + } + + /** + * 篆絖絎≧号腮id + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/salaryApproval/saveRequestId") + @Produces(MediaType.APPLICATION_JSON) + public String saveApprovalRequestId(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ApprovalRequestSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryApprovalWrapper(user)::saveApprovalRequestId, param); + } + + /**********************************莎絎≧壕 start*********************************/ + } diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 7aee3ea8b..1cdc8dd4e 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -255,6 +255,14 @@ public class TaxAgentController { return new ResponseResult(user).run(getTaxAgentWrapper(user)::saveRange, saveParam); } + //篆絖篋阪 + @POST + @Path("/range/edit") + @Produces(MediaType.APPLICATION_JSON) + public String editRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentRangeSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getTaxAgentWrapper(user)::editRange, param); + } //や査 diff --git a/src/com/engine/salary/web/VariableArchiveController.java b/src/com/engine/salary/web/VariableArchiveController.java new file mode 100644 index 000000000..f179c9683 --- /dev/null +++ b/src/com/engine/salary/web/VariableArchiveController.java @@ -0,0 +1,259 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandleParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveQueryParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveSaveParam; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.excel.ExcelPreviewDTO; +import com.engine.salary.wrapper.VariableArchiveWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.StreamingOutput; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.time.LocalDate; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 井-羌 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Slf4j +public class VariableArchiveController { + + private VariableArchiveWrapper getVariableArchiveWrapper(User user) { + return ServiceUtil.getService(VariableArchiveWrapper.class, user); + } + + /** + * 羌茵 + * + * @param request + * @param response + * @param queryParam + * @return + */ + @POST + @Path("/list") + @Produces(MediaType.APPLICATION_JSON) + public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getVariableArchiveWrapper(user)::list, queryParam); + } + + /** + * 羌膸 + * + * @param request + * @param response + * @param queryParam + * @return + */ + @POST + @Path("/getDetail") + @Produces(MediaType.APPLICATION_JSON) + public String getDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getVariableArchiveWrapper(user)::getDetail, queryParam); + } + + /** + * キ綮堺貴罅f狗々篆≧ + * + * @param request + * @param response + * @return + */ + @POST + @Path("/getCreateForm") + @Produces(MediaType.APPLICATION_JSON) + public String getCreateForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getVariableArchiveWrapper(user)::getCreateForm); + } + + /** + * 綮堺貴罅f + * + * @param request + * @param response + * @param saveParam + * @return + */ + @POST + @Path("/createData") + @Produces(MediaType.APPLICATION_JSON) + public String createData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + if (saveParam.getId() == null) { + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::createData, saveParam); + } else { + // 贋 + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::updateData, saveParam); + } + } + + + @GET + @Path("/downloadTemplate") + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response downloadTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + VariableArchiveQueryParam param = buildParam(request); + + XSSFWorkbook workbook = getVariableArchiveWrapper(user).downloadTemplate(param); + String fileName = "羌絲弱ユ─" + LocalDate.now(); + try { + fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + StreamingOutput output = outputStream -> { + workbook.write(outputStream); + outputStream.flush(); + }; + 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); + throw e; + } + } + + + /** + * 絲弱 + * + * @param + * @return + */ + @POST + @Path("/export") + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response export(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveQueryParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + // VariableArchiveQueryParam param = buildParam(request); + // String columns = request.getParameter("columns"); + // if (StringUtils.isNotBlank(columns)) { + // param.setColumns(Arrays.stream(columns.split(",")).collect(Collectors.toList())); + // } + + XSSFWorkbook workbook = getVariableArchiveWrapper(user).export(param); + + String fileName = null; + try { + fileName = URLEncoder.encode("羌" + LocalDate.now() + ".xlsx", "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + StreamingOutput output = outputStream -> { + workbook.write(outputStream); + outputStream.flush(); + }; + + 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); + throw e; + } + } + + + + private VariableArchiveQueryParam buildParam(HttpServletRequest request) { + VariableArchiveQueryParam param = new VariableArchiveQueryParam(); + + String salaryMonthStr = request.getParameter("salaryMonth"); + if (StringUtils.isNotBlank(salaryMonthStr)) { + param.setSalaryMonth(salaryMonthStr); + param.setSalaryMonthDate(SalaryDateUtil.dateStrToLocalYearMonth(salaryMonthStr)); + } + String username = request.getParameter("username"); + if (StringUtils.isNotBlank(username)) { + param.setUsername(username); + } + + String departmentIdStr = request.getParameter("departmentIds"); + if (StringUtils.isNotBlank(departmentIdStr)) { + List departmentIds = Arrays.stream(departmentIdStr.split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); + param.setDepartmentIds(departmentIds); + } + String workcode = request.getParameter("workcode"); + if (StringUtils.isNotBlank(workcode)) { + param.setWorkcode(workcode); + } + + String hasData = request.getParameter("hasData"); + if (StringUtils.isNotBlank(hasData)) { + param.setHasData(hasData.equals("true")); + } + + return param; + } + + @POST + @Path("/preview") + @Produces(MediaType.APPLICATION_JSON) + public String preview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveImportHandleParam importParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getVariableArchiveWrapper(user)::preview, importParam); + } + + @POST + @Path("/importData") + @Produces(MediaType.APPLICATION_JSON) + public String importAddUpDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveImportHandleParam importParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getVariableArchiveWrapper(user)::importData, importParam); + } + + + /** + * @description + * @return String + * @author Harryxzy + * @date 2024/08/08 14:41 + */ + @POST + @Path("/deleteSelectData") + @Produces(MediaType.APPLICATION_JSON) + public String deleteSelectVariableArchive(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveQueryParam variableArchiveQueryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, String>(user).run(getVariableArchiveWrapper(user)::deleteSelectVariableArchive, variableArchiveQueryParam.getIds()); + } + +} diff --git a/src/com/engine/salary/web/VariableItemController.java b/src/com/engine/salary/web/VariableItemController.java new file mode 100644 index 000000000..70146a585 --- /dev/null +++ b/src/com/engine/salary/web/VariableItemController.java @@ -0,0 +1,324 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableItemQueryParam; +import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.wrapper.VariableItemWrapper; +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.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.List; + +/** + * 井-羌蕁合 + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author xzy + * @version 1.0 + **/ +@Slf4j +public class VariableItemController { + + private VariableItemWrapper getVariableItemWrapper(User user) { + return ServiceUtil.getService(VariableItemWrapper.class, user); + } + + /** + * 羌蕁合茵 + * + * @return + */ + @POST + @Path("/listPage") + @Produces(MediaType.APPLICATION_JSON) + public String listPage(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableItemQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getVariableItemWrapper(user)::listPage, queryParam); + } + + + /** + * 羌蕁合莚膸篆≧ + * + * @return + */ + @POST + @Path("/getDetail") + @Produces(MediaType.APPLICATION_JSON) + public String getDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableItemQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getVariableItemWrapper(user)::getDetail, queryParam.getId()); + } + + + /** + * 篆絖羌莎蕁合 + * + * @param request + * @param response + * @param saveParam + * @return + */ + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveVariableItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableItemSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + if (saveParam.getId() == null || saveParam.getId() <= 0) { + return new ResponseResult(request, response, user).run(getVariableItemWrapper(user)::save, saveParam); + } else { + return new ResponseResult(request, response, user).run(getVariableItemWrapper(user)::update, saveParam); + } + } + + + + /** + * ゆ貴莎蕁合 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableItemQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, String>(request, response, user).run(getVariableItemWrapper(user)::deleteItems, param.getItemIds()); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // @GET + // @Path("/downloadTemplate") + // @Produces(MediaType.APPLICATION_OCTET_STREAM) + // public Response getAll(@Context HttpServletRequest request, @Context HttpServletResponse response) { + // try { + // User user = HrmUserVarify.getUser(request, response); + // OtherDeductionQueryParam param = buildParam(request); + // + // XSSFWorkbook workbook = getOtherDeductionWrapper(user).downloadTemplate(param); + // String fileName = "銀腮iゅ弱ユ─" + LocalDate.now(); + // try { + // fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); + // } catch (UnsupportedEncodingException e) { + // e.printStackTrace(); + // } + // + // StreamingOutput output = outputStream -> { + // workbook.write(outputStream); + // outputStream.flush(); + // }; + // 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("銀腮iゅ弱ユ─水絽", e); + // throw e; + // } + // } + // + // + // /** + // * 絲弱 + // * + // * @param + // * @return + // */ + // @GET + // @Path("/export") + // @Produces(MediaType.APPLICATION_OCTET_STREAM) + // public Response export(@Context HttpServletRequest request, @Context HttpServletResponse response) { + // try { + // User user = HrmUserVarify.getUser(request, response); + // + // OtherDeductionQueryParam param = buildParam(request); + // + // XSSFWorkbook workbook = getOtherDeductionWrapper(user).export(param); + // + // String fileName = null; + // try { + // fileName = URLEncoder.encode("銀腮i" + LocalDate.now() + ".xlsx", "UTF-8"); + // } catch (UnsupportedEncodingException e) { + // e.printStackTrace(); + // } + // + // StreamingOutput output = outputStream -> { + // workbook.write(outputStream); + // outputStream.flush(); + // }; + // + // 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("銀腮iゅ弱阪絽", e); + // throw e; + // } + // } + // + // + // + // + // @Nullable + // private OtherDeductionQueryParam buildParam(HttpServletRequest request) { + // OtherDeductionQueryParam param = new OtherDeductionQueryParam(); + // String ids = request.getParameter("ids"); + // if (StringUtils.isNotBlank(ids)) { + // param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList())); + // } + // String keyword = request.getParameter("keyword"); + // if (StringUtils.isNotBlank(keyword)) { + // param.setKeyword(keyword); + // } + // String id = request.getParameter("id"); + // if (StringUtils.isNotBlank(id)) { + // param.setId(Long.valueOf(id)); + // } + // String declareMonth = request.getParameter("declareMonth"); + // if (StringUtils.isNotBlank(declareMonth)) { + // param.setDeclareMonth(Arrays.stream(declareMonth.split(",")).map(e -> e + "-01 00:00:00").collect(Collectors.toList())); + // param.setDeclareMonthDate(Arrays.stream(declareMonth.split(",")).map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); + // } + // + // String username = request.getParameter("username"); + // if (StringUtils.isNotBlank(username)) { + // param.setUsername(username); + // } + // String employeeId = request.getParameter("employeeId"); + // if (StringUtils.isNotBlank(employeeId)) { + // param.setEmployeeId(Long.valueOf(employeeId)); + // } + // String taxAgentId = request.getParameter("taxAgentId"); + // if (StringUtils.isNotBlank(taxAgentId)) { + // param.setTaxAgentId(Long.valueOf(taxAgentId)); + // } + // String departmentIds = request.getParameter("departmentIds"); + // if (StringUtils.isNotBlank(departmentIds)) { + // param.setDepartmentIds(Arrays.stream(departmentIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); + // } + // String jobNum = request.getParameter("jobNum"); + // if (StringUtils.isNotBlank(jobNum)) { + // param.setJobNum(jobNum); + // } + // String idNo = request.getParameter("idNo"); + // if (StringUtils.isNotBlank(idNo)) { + // param.setIdNo(idNo); + // } + // String hiredate = request.getParameter("hiredate"); + // if (StringUtils.isNotBlank(hiredate)) { + // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + // List dates = Arrays.stream(hiredate.split(",")).map(d -> { + // try { + // return format.parse(d); + // } catch (ParseException e) { + // e.printStackTrace(); + // } + // return null; + // }).collect(Collectors.toList()); + // param.setHiredate(dates); + // } + // String mobile = request.getParameter("mobile"); + // if (StringUtils.isNotBlank(mobile)) { + // param.setMobile(mobile); + // } + // String otherTaxExemptDeductionId = request.getParameter("otherTaxExemptDeductionId"); + // if (StringUtils.isNotBlank(otherTaxExemptDeductionId)) { + // param.setOtherTaxExemptDeductionId(Long.valueOf(otherTaxExemptDeductionId)); + // } + // + // String hasData = request.getParameter("hasData"); + // if (StringUtils.isNotBlank(hasData)) { + // param.setHasData("true".equals(hasData)); + // } + // return param; + // } + // + // @POST + // @Path("/preview") + // @Produces(MediaType.APPLICATION_JSON) + // public String preview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionImportParam importParam) { + // User user = HrmUserVarify.getUser(request, response); + // return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::preview, importParam); + // } + // + // @POST + // @Path("/importData") + // @Produces(MediaType.APPLICATION_JSON) + // public String importAddUpDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionImportParam importParam) { + // User user = HrmUserVarify.getUser(request, response); + // return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::importData, importParam); + // } + // + // /** + // * @description キ銀腮iゆ井 + // * @return String + // * @author Harryxzy + // * @date 2022/10/31 13:42 + // */ + // @POST + // @Path("/getData") + // @Produces(MediaType.APPLICATION_JSON) + // public String getOtherDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody OtherDeductionParam otherDeductionParam) { + // User user = HrmUserVarify.getUser(request, response); + // return new ResponseResult(user).run(getOtherDeductionWrapper(user)::getOtherDeduction, otherDeductionParam); + // } + // + // /** + // * @description ゆ銀腮i + // * @return String + // * @author Harryxzy + // * @date 2022/10/27 14:41 + // */ + // @POST + // @Path("/deleteSelectData") + // @Produces(MediaType.APPLICATION_JSON) + // public String deleteSelectOtherDeduction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AddUpDeductionRecordDeleteParam otherDeductionDeleteParam) { + // User user = HrmUserVarify.getUser(request, response); + // return new ResponseResult>(user).run(getOtherDeductionWrapper(user)::deleteSelectData, otherDeductionDeleteParam); + // } + +} diff --git a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java index 0418be6f9..d4eaf7211 100644 --- a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java +++ b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java @@ -106,9 +106,8 @@ public class EmployeeDeclareWrapper extends Service { } taxAgents = taxAgents.stream().distinct().collect(Collectors.toList()); // 蕁 - List taxAgentPOS = SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), taxAgents); List dtoList = Lists.newArrayList(); - for (TaxAgentPO taxAgent : taxAgentPOS) { + for (TaxAgentPO taxAgent : taxAgents) { TaxAgentDeclareListDTO dto = new TaxAgentDeclareListDTO().setId(taxAgent.getId()).setTaxAgentName(taxAgent.getName()); dtoList.add(dto); } diff --git a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java index 3002e8cfd..4782d3af0 100644 --- a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java +++ b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java @@ -6,17 +6,18 @@ import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.datacollection.dto.OtherDeductionListDTO; -import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; +import com.engine.salary.entity.datacollection.dto.*; import com.engine.salary.entity.datacollection.param.*; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.OtherDeductionService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.TaxDeclarationApiConfigService; import com.engine.salary.service.impl.OtherDeductionServiceImpl; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.service.impl.TaxDeclarationApiConfigServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -43,6 +44,10 @@ public class OtherDeductionWrapper extends Service { return ServiceUtil.getService(OtherDeductionServiceImpl.class, user); } + private TaxDeclarationApiConfigService getTaxDeclarationApiConfigService(User user) { + return ServiceUtil.getService(TaxDeclarationApiConfigServiceImpl.class, user); + } + private TaxAgentService getTaxAgentV2Service(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } @@ -196,7 +201,15 @@ public class OtherDeductionWrapper extends Service { * @return */ public XSSFWorkbook downloadTemplate(OtherDeductionQueryParam queryParam) { - return getOtherDeductionService(user).downloadTemplate(queryParam); + + //綣篋肴順 + boolean enableUse = getTaxDeclarationApiConfigService(user).enableUse(); + + if (enableUse) { + return getOtherDeductionService(user).downloadDetailTemplate(queryParam); + } else { + return getOtherDeductionService(user).downloadTemplate(queryParam); + } } /** @@ -210,7 +223,14 @@ public class OtherDeductionWrapper extends Service { * 絲弱ユ井 */ public Map importData(OtherDeductionImportParam importParam) { - return getOtherDeductionService(user).importData(importParam); + //綣篋肴順 + boolean enableUse = getTaxDeclarationApiConfigService(user).enableUse(); + + if (enableUse) { + return getOtherDeductionService(user).importDetailData(importParam); + } else { + return getOtherDeductionService(user).importData(importParam); + } } /** @@ -267,4 +287,89 @@ public class OtherDeductionWrapper extends Service { param.setYearMonthTime(localDate); return getOtherDeductionService(user).extendToLastMonth(param); } -} + + public PageInfo freeIncomeList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).freeIncomeList(param); + } + + public PageInfo derateDeductionList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).derateDeductionList(param); + } + + public PageInfo endowmentInsuranceList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).endowmentInsuranceList(param); + } + + public PageInfo grantDonationList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).grantDonationList(param); + } + + public PageInfo healthInsuranceList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).healthInsuranceList(param); + } + + public PageInfo otherDerateDeductionList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).otherDerateDeductionList(param); + } + + public PageInfo personalPensionList(OtherDeductionDetailQueryParam param) { + return getOtherDeductionService(user).personalPensionList(param); + } + + public void saveFreeIncome(FreeIncomeSaveParam param) { + getOtherDeductionService(user).saveFreeIncome(param); + } + + public void saveEndowmentInsurance(EndowmentInsuranceSaveParam param) { + getOtherDeductionService(user).saveEndowmentInsurance(param); + } + + public void saveGrantDonation(GrantDonationSaveParam param) { + getOtherDeductionService(user).saveGrantDonation(param); + } + + public void saveHealthInsurance(HealthInsuranceSaveParam param) { + getOtherDeductionService(user).saveHealthInsurance(param); + } + + public void saveOtherDerateDeduction(OtherDerateDeductionSaveParam param) { + getOtherDeductionService(user).saveOtherDerateDeduction(param); + } + + public void saveDerateDeduction(DerateDeductionSaveParam param) { + getOtherDeductionService(user).saveDerateDeduction(param); + } + + public void savePersonalPension(PersonalPensionSaveParam param) { + getOtherDeductionService(user).savePersonalPension(param); + } + + public void deleteFreeIncome(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteFreeIncome(param); + } + + public void deleteEndowmentInsurance(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteEndowmentInsurance(param); + } + + public void deleteGrantDonation(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteGrantDonation(param); + } + + public void deleteHealthInsurance(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteHealthInsurance(param); + } + + public void deleteOtherDerateDeduction(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteOtherDerateDeduction(param); + } + + public void deleteDerateDeduction(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deleteDerateDeduction(param); + } + + public void deletePersonalPension(OtherDeductionDetailDeleteParam param) { + getOtherDeductionService(user).deletePersonalPension(param); + } + +} \ No newline at end of file diff --git a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java index b010175a9..9aa36bec9 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java @@ -185,11 +185,11 @@ public class SalaryAcctEmployeeWrapper extends Service { } /** - * 傑遺肩腮g軸箙>査 + * 傑井悟篋阪 * * @param salaryAcctRecordId 莎悟莅医id */ - public void refreshTaxAgent(Long salaryAcctRecordId) { + public void refresh(Long salaryAcctRecordId) { getSalaryAcctEmployeeService(user).refresh(salaryAcctRecordId); } diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 853a46e4d..7e352ce91 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -15,16 +15,22 @@ import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctSobConfigPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; +import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +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.SalarySobUtil; +import com.engine.salary.util.page.Column; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.ValidUtil; import com.engine.salary.wrapper.proxy.SalaryAcctRecordWrapperProxy; @@ -83,6 +89,14 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + // private ComInfoCache comInfoCache; public PageInfo listPage(SalaryAcctRecordQueryParam queryParam) { @@ -102,6 +116,24 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // ヨ∵莎茣絅 Set salarySobIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getSalarySobId); List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); + // 茹莅丞舟筝綣莎絎≧号鐚藥莅ゅ渇 + SalarySysConfPO salaryApprovalStatusConf = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_APPROVAL_STATUS); + List needApprovalSalarySobIds = new ArrayList<>(); + // 藥莅ゅ篁ラ井悟篁ユ綵罅 + boolean approvalCanReCalc = true; + boolean approvalCanFile = true; + if (salaryApprovalStatusConf != null && salaryApprovalStatusConf.getConfValue().equals("1")) { + // 綣篋莎絎≧刻キ菴綣絎≧合茣絅id + List salaryApprovalRules = getSalaryApprovalRuleService(user).listBySalarySobIds(salarySobIds); + needApprovalSalarySobIds = salaryApprovalRules.stream().filter(po -> po.getOpenApproval().equals(1)).map(SalaryApprovalRulePO::getSalarySobId).collect(Collectors.toList()); + + // キ 綣絎≧合悟莅医莅檎井悟莅丞舟鐚藥莅ゅ + SalarySysConfPO approvalCanReCalcFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_RE_CALC_STATUS); + approvalCanReCalc = approvalCanReCalcFileStatusPO == null ? true : approvalCanReCalcFileStatusPO.getConfValue().equals("1"); + // キ 綣絎≧合悟莅医莅御綵罅o藥莅ゅ + SalarySysConfPO approvalCanManualFileStatusPO = getSalarySysConfService(user).getOneByCode(SalarySysConstant.APPROVAL_CAN_MANUAL_FILE_STATUS); + approvalCanFile = approvalCanManualFileStatusPO == null ? true : approvalCanManualFileStatusPO.getConfValue().equals("1"); + } // ヨ∵莎悟莅医綮坂査篋阪篆≧ List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); List employeeComInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); @@ -113,10 +145,15 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); - // 莉∽茵dto - List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS); + List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc); dtoPage.setList(salaryAcctRecordListDTOS); + // 茹莅丞舟筝綣絎≧劫緒藥莅ゅ渇 + if (CollectionUtils.isEmpty(needApprovalSalarySobIds)) { + // 羃≧綣絎≧合 + List columnList = dtoPage.getColumns().stream().filter(col -> !col.getKey().equals("approvalStatus")).collect(Collectors.toList()); + dtoPage.clearAndSetColumns(columnList); + } } // WeaTable weaTable = SalaryFormatUtil.getInstance().buildTable(SalaryAcctRecordListDTO.class, dtoPage); // Ŭ綵罅f九篁"悟""""綵罅" diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 0442df794..39e39c263 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -17,7 +17,6 @@ import com.engine.salary.service.*; import com.engine.salary.service.impl.*; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.ValidUtil; @@ -80,6 +79,10 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult return ServiceUtil.getService(SalaryCalcTaxServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + /** * 莎悟茵 * @@ -195,6 +198,11 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult getSalaryAcctResultService(user).save(saveParam); } + + public void lock(SalaryAcctResultLockParam param) { + getSalaryAcctResultService(user).lock(param); + } + /** * 贋域莎悟膸主絎倶 * @@ -212,10 +220,13 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult public void calculate(SalaryAcctCalculateParam calculateParam) { log.info("綣紮悟V1{}", calculateParam); - //ヨ; - List emps = getSalaryEmployeeService(user).listAllForReport(); - calculateParam.setEmps(SalaryEntityUtil.convert2Map(emps, DataCollectionEmployee::getEmployeeId)); + // ♂篁ョ莨 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); + boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO); + if (!recordIsCanEdit) { + throw new SalaryRunTimeException("莚ユ悟莅医綏牙莎桁≧刻羈膽莨悟鐚莚桁ゅ≧号腮"); + } //綵脂篋阪 DataCollectionEmployee simpleEmployee = new DataCollectionEmployee(); simpleEmployee.setEmployeeId((long) user.getUID()); @@ -224,6 +235,7 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult // 罍ユ罩e悟筝 ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId()); if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { + log.warn("罩e悟筝鐚羈罨≧ц"+calculateParam.getSalaryAcctRecordId()); return; } // 紮菴綺 diff --git a/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java new file mode 100644 index 000000000..81c6b10ce --- /dev/null +++ b/src/com/engine/salary/wrapper/SalaryApprovalWrapper.java @@ -0,0 +1,168 @@ +package com.engine.salary.wrapper; + +import com.api.formmode.mybatis.util.SqlProxyHandle; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.component.WeaTableColumnGroup; +import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; +import com.engine.salary.entity.salarysob.dto.SalaryApprovalDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobEmpFieldDTO; +import com.engine.salary.entity.salarysob.param.ApprovalRequestSaveParam; +import com.engine.salary.entity.salarysob.param.SalaryApprovalQueryParam; +import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; +import com.engine.salary.enums.salaryaccounting.LockStatusEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.sys.SalarySysConfMapper; +import com.engine.salary.service.*; +import com.engine.salary.service.impl.*; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.math.NumberUtils; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_ACCT_FIXED_COLUMNS; + +/** + * 莎茣絅莎絎≧ + *

Copyright: Copyright (c) 2024

+ *

Company: 羈緇莉篁

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryApprovalWrapper extends Service { + + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { + return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalaryAcctResultService getSalaryAcctResultService(User user) { + return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); + } + + private SalarySobEmpFieldService getSalarySobEmpFieldService(User user) { + return ServiceUtil.getService(SalarySobEmpFieldServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalarySysConfMapper getSalarySysConfMapper() { + return SqlProxyHandle.getProxy(SalarySysConfMapper.class); + } + + /** + * 莎茣絅莎絎≧壕 + * + * @param queryParam ヨ√ + * @return + */ + public SalaryApprovalDTO salaryApprovalForm(SalaryApprovalQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + return getSalaryApprovalRuleService(user).salaryApprovalForm(queryParam); + } + + /** + * 篆絖莎茣絅莎絎≧壕 + * + * @param salaryApprovalDTO + * + */ + public void saveSalaryApprovalForm(SalaryApprovalDTO salaryApprovalDTO) { + getSalaryApprovalRuleService(user).saveSalaryApprovalForm(salaryApprovalDTO); + } + + public List listSalaryApprovalItem(SalaryItemSearchParam queryParam) { + return getSalaryApprovalRuleService(user).listSalaryApprovalItem(queryParam); + } + + public SalaryApprovalDTO getApprovalInfoByRecordId(Long salaryAcctRecordId) { + return getSalaryApprovalRuleService(user).getApprovalInfoByRecordId(salaryAcctRecordId); + } + + public Map listSalaryApprovalAcctResult(SalaryAcctResultQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + // 絎≧剛拭 + SalaryApprovalDTO approvalInfoByRecordId = getSalaryApprovalRuleService(user).getApprovalInfoByRecordId(queryParam.getSalaryAcctRecordId()); + + // ヨ∵莎悟莅医 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "莎悟莅医筝絖綏画←")); + } + + // ヨ∵莎悟膸鐚蕁居 + PageInfo> page = getSalaryAcctResultService(user).listPageByParam(queryParam); + + // 綮肴莎悟膸絎≧劫茵茵紊 + List columns = Lists.newArrayList(); + // ヨ∵莎茣絅綏ヤ拭絖罧 + List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salarySobEmpFieldDTOS = new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS); + // キ莎蕁合篆≧ + List salaryItemPOS = getSalaryItemService(user).listAll(); + Map salaryItemWidthMap = SalaryEntityUtil.convert2Map(salaryItemPOS, SalaryItemPO::getId, SalaryItemPO::getWidth); + // 綏ヤ拭絖罧 + for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobEmpFieldDTOS) { + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobEmpFieldDTO.getFieldName(), 0), salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); + } + // 莎蕁合膸筝莎蕁合 + for (SalaryApprovalDTO.approvalItemGroup groupDTO : approvalInfoByRecordId.getApprovalItemGroup()) { + if (CollectionUtils.isEmpty(groupDTO.getApprovalItems())) { + continue; + } + List childrenColumns = Lists.newArrayList(); + for (SalaryApprovalDTO.approvalItem approvalItemDTO : groupDTO.getApprovalItems()) { + childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(approvalItemDTO.getSalaryItemName(), salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0) == null ? 0 : salaryItemWidthMap.getOrDefault(approvalItemDTO.getSalaryItemId(), 0)), approvalItemDTO.getSalaryItemName(), "" + approvalItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue().toString())); + } + WeaTableColumnGroup weaTableColumnWapper = new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(groupDTO.getGroupName(), 0), groupDTO.getGroupName(), groupDTO.getGroupName(), childrenColumns); + columns.add(weaTableColumnWapper); + } + + // キ阪紊贋 + SalarySysConfPO salaryAcctFixedColumns = getSalarySysConfMapper().getOneByCode(SALARY_ACCT_FIXED_COLUMNS); + if (salaryAcctFixedColumns != null) { + int fixedNum = NumberUtils.isCreatable(salaryAcctFixedColumns.getConfValue()) ? Integer.valueOf(salaryAcctFixedColumns.getConfValue()) : 3; + if (fixedNum == 0) { + fixedNum = 3; + } + for (int i = 0; i < fixedNum; i++) { + columns.get(i).setFixed("left"); + } + } + + Map datas = new HashMap<>(); + datas.put("pageInfo", page); + datas.put("columns", columns); + + return datas; + } + + /** + * 篆絖絎≧号腮id + * @param saveParam + */ + public void saveApprovalRequestId(ApprovalRequestSaveParam saveParam) { + getSalaryApprovalRuleService(user).saveApprovalRequestId(saveParam); + } +} diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 17d1d9f53..50b6d10a5 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -256,7 +256,10 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt List listResult = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds); listResult = listResult.stream() .filter(r -> { - DataCollectionEmployee employee = employeeMap.getOrDefault(r.getEmployeeId(), new DataCollectionEmployee()); + DataCollectionEmployee employee = employeeMap.get(r.getEmployeeId()); + if (employee == null) { + return false; + } String username = queryParam.getUsername(); List departmentIds = queryParam.getDepartmentIds(); List positionIds = queryParam.getPositionIds(); diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 1c9de1532..38df064cb 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -26,6 +26,8 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.process.salaryArchive.SalaryArchiveProcessQueryParam; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.google.common.collect.Lists; @@ -38,6 +40,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_SECONDARY_ACCOUNT; + /** * 莎罅f *

Copyright: Copyright (c) 2022

@@ -73,6 +77,12 @@ public class SalaryArchiveWrapper extends Service { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //筝紙∴侃垽綣 + boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); /** * 莎罅f茵鐚蕁居 @@ -101,7 +111,7 @@ public class SalaryArchiveWrapper extends Service { //膸茖 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); @@ -153,7 +163,7 @@ public class SalaryArchiveWrapper extends Service { //膸茖 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 34af2f94a..7a961cb35 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -5,10 +5,16 @@ import com.engine.core.impl.Service; import com.engine.salary.entity.browser.dto.BrowserDataDTO; import com.engine.salary.entity.browser.param.BrowserDataQueryParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.service.SalaryCacheService; import com.engine.salary.service.SalarySobItemService; +import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryCacheServiceImpl; import com.engine.salary.service.impl.SalarySobItemServiceImpl; +import com.engine.salary.service.impl.SettingServiceImpl; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -26,6 +32,10 @@ public class SalaryCommonWrapper extends Service { return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + private SalarySobItemService getSalarySobItemService(User user) { return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); } @@ -57,4 +67,43 @@ public class SalaryCommonWrapper extends Service { return null; } + public void savePageListSetting(PageListSettingSaveParam param) { + getSettingService(user).savePageListSetting(param); + } + + public void resetPageListSetting(PageListSettingResetParam param) { + getSettingService(user).resetPageListSetting(param); + } + + + public PageListTemplateDetailDTO getPageListSetting(PageListSettingQueryParam param) { + return getSettingService(user).getDefaultPageListSetting(param); + } + + + public PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplate(param); + } + + public List getPageListTemplates(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplates(param); + } + + public PageInfo getTemplates(PageListTemplateQueryParam param) { + return getSettingService(user).getTemplates(param); + } + + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { + return getSettingService(user).savePageListTemplate(param); + } + + public void deletePageListTemplate(PageListTemplateDeleteParam param) { + getSettingService(user).deletePageListTemplate(param); + } + + public void changePageListTemplate(PageListTemplateChangeParam param) { + getSettingService(user).changePageListTemplate(param); + } + + } diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 0fccfecd0..8bbba561c 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -744,8 +744,8 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy return getSalaryBillService(user).exportPdf(param); } - public Map getToken(Long uid) { - return SalaryTokenUtil.GetToken( uid); + public Map getToken(SalaryBillGetTokenParam param) { + return SalaryTokenUtil.GetToken(param); } public String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam) { diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index 55436194d..9cacda8c4 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -77,12 +77,7 @@ public class SalarySobItemWrapper extends Service { Integer searchPageSize = queryParam.getPageSize(); Integer searchCurrent = queryParam.getCurrent(); - // 蕁究ヨ∵莎蕁合 - queryParam.setPageSize(10000000); - queryParam.setCurrent(1); - PageInfo page = getSalaryItemService(user).listPageByParam(queryParam); - - List salaryItemList = page.getList(); + List salaryItemList = getSalaryItemService(user).listByParam(queryParam); Set taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()) .stream().map(TaxAgentPO::getId) @@ -100,22 +95,23 @@ public class SalarySobItemWrapper extends Service { } }) .collect(Collectors.toList()); - salaryItemList = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + //膸菴蕁球壕院 PageInfo dtoPage = new PageInfo<>(SalaryItemSobListDTO.class); dtoPage.setPageSize(searchPageSize); dtoPage.setPageNum(searchCurrent); - dtoPage.setTotal(page.getTotal()); - if (CollectionUtils.isNotEmpty(salaryItemList)) { + dtoPage.setTotal(salaryItemList.size()); + List list = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + if (CollectionUtils.isNotEmpty(list)) { // ヨ√綣 - Set formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId); + Set formulaIds = SalaryEntityUtil.properties(list, SalaryItemPO::getFormulaId); List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); // ヨ∝鎧膸莎蕁合 - Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId); + Set sysSalaryItemIds = SalaryEntityUtil.properties(list, SalaryItemPO::getSysSalaryItemId); List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 莉∽莎蕁合茵dto - dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS)); + dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(list, expressFormulas, sysSalaryItemPOS)); } return dtoPage; @@ -194,4 +190,5 @@ public class SalarySobItemWrapper extends Service { public void checkLoop(Long salarySobId) { getSalarySobItemService(user).checkLoop(salarySobId); } + } diff --git a/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java b/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java index 7d201108c..1ae272efc 100644 --- a/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobRangeWrapper.java @@ -104,6 +104,36 @@ public class SalarySobRangeWrapper extends Service { getSalarySobRangeService(user).save(saveParam); } + + public void edit(SalarySobRangeSaveParam param) { + Optional.ofNullable(param.getTargetParams()).orElse(new ArrayList<>()) + .forEach(targetParam -> { + if (StrUtil.isNotBlank(targetParam.getTarget())) { + targetParam.setTarget(targetParam.getTarget() + .replace("鐔鐔鐔鐔鐔鐔", "select") + .replace("鐚鰹璽鐚鐚ワ治鐚", "SELECT") + .replace("鐔鐔鐔鐔", "join") + .replace("鐚鐚鐚鐚", "JOIN") + .replace("鐔鐔鐔", "and") + .replace("鐚¥汐鐚", "AND") + .replace("鐔鐔", "or") + .replace("鐚鐚", "OR") + .replace("鐔鐔", "in") + .replace("鐚鐚", "IN") + .replace("鐔鐔鐔鐔", "like") + .replace("鐚鐚鐚鐚", "LIKE") + .replace("鐔鐔鐔鐔鐔鐔", "exists") + .replace("鐚ワ叱鐚鐚鰹軸鐚", "EXISTS") + .replace("鐔鐔鐔鐔鐔鐔鐔", "between") + .replace("鐚鐚ワ軸鐚件璽鐚ワ汐", "BETWEEN") + .replace("鐔鐔鐔鐔鐔", "union") + .replace("鐚居汐鐚鐚鐚", "UNION")); + } + }); + + getSalarySobRangeService(user).edit(param); + } + /** * 篆絖 * diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 286213cc9..7c5b6bf5a 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -414,6 +414,40 @@ public class TaxAgentWrapper extends Service { } + public String editRange(TaxAgentRangeSaveParam param) { + //絨selectXSS菴羯ら綣絽後膃莉√ + + Optional.ofNullable(param.getTargetParams()).orElse(new ArrayList<>()) + .forEach(targetParam -> { + if (StrUtil.isNotBlank(targetParam.getTarget())) { + targetParam.setTarget(targetParam.getTarget() + .replace("鐔鐔鐔鐔鐔鐔", "select") + .replace("鐚鰹璽鐚鐚ワ治鐚", "SELECT") + .replace("鐔鐔鐔鐔", "join") + .replace("鐚鐚鐚鐚", "JOIN") + .replace("鐔鐔鐔", "and") + .replace("鐚¥汐鐚", "AND") + .replace("鐔鐔", "or") + .replace("鐚鐚", "OR") + .replace("鐔鐔", "in") + .replace("鐚鐚", "IN") + .replace("鐔鐔鐔鐔", "like") + .replace("鐚鐚鐚鐚", "LIKE") + .replace("鐔鐔鐔鐔鐔鐔", "exists") + .replace("鐚ワ叱鐚鐚鰹軸鐚", "EXISTS") + .replace("鐔鐔鐔鐔鐔鐔鐔", "between") + .replace("鐚鐚ワ軸鐚件璽鐚ワ汐", "BETWEEN") + .replace("鐔鐔鐔鐔鐔", "union") + .replace("鐚居汐鐚鐚鐚", "UNION")); + } + }); + + + getTaxAgentManageRangeService(user).edit(param); + return StringUtils.EMPTY; + } + + /** * ょ∞ * diff --git a/src/com/engine/salary/wrapper/VariableArchiveWrapper.java b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java new file mode 100644 index 000000000..927fa299a --- /dev/null +++ b/src/com/engine/salary/wrapper/VariableArchiveWrapper.java @@ -0,0 +1,130 @@ +package com.engine.salary.wrapper; + +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.component.SalaryWeaTable; +import com.engine.salary.entity.datacollection.bo.VariableArchiveBO; +import com.engine.salary.entity.datacollection.dto.VariableArchiveListDTO; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandleParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveQueryParam; +import com.engine.salary.entity.datacollection.param.VariableArchiveSaveParam; +import com.engine.salary.entity.datacollection.po.VariableItemPO; +import com.engine.salary.service.VariableArchiveService; +import com.engine.salary.service.VariableItemService; +import com.engine.salary.service.impl.VariableArchiveServiceImpl; +import com.engine.salary.service.impl.VariableItemServiceImpl; +import com.engine.salary.util.excel.ExcelPreviewDTO; +import com.engine.salary.util.page.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: 羌 + * @Author: xzy + * @Date: 2024/8/6 17:39 + */ +@Slf4j +public class VariableArchiveWrapper extends Service { + private VariableArchiveService getVariableArchiveService(User user) { + return ServiceUtil.getService(VariableArchiveServiceImpl.class, user); + } + + private VariableItemService getVariableItemService(User user) { + return ServiceUtil.getService(VariableItemServiceImpl.class, user); + } + + /** + * 井-羌茵(蕁) + * + * @param queryParam + * @return + */ + public Map list(VariableArchiveQueryParam queryParam) { + + // 莎罅f茵 + PageInfo pageInfo = getVariableArchiveService(user).listPage(queryParam); + List salaryArchives = pageInfo.getList(); + + // キ羌蕁合 + List variableItems = getVariableItemService(user).listAll(); + + // 翫丞ず鐚阪+莎蕁合鐚 + List> listMaps = getVariableArchiveService(user).buildVariableArchiveData(salaryArchives); + + PageInfo> pageInfos = new PageInfo>(listMaps); + pageInfos.setTotal(pageInfo.getTotal()); + pageInfos.setPageNum(pageInfo.getPageNum()); + pageInfos.setPageSize(pageInfo.getPageSize()); + + //膸茖 + List columns = VariableArchiveBO.buildVariableArchiveTable(variableItems); + + SalaryWeaTable table = new SalaryWeaTable(user, VariableArchiveListDTO.class); + table.setColumns(columns); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + Map datas = new HashMap<>(); + datas.put("pageInfo", pageInfos); + datas.put("dataKey", result.getResultMap()); + + return datas; + } + + /** + * 綮堺貴罅f + * + * @param saveParam + */ + public void createData(VariableArchiveSaveParam saveParam) { + getVariableArchiveService(user).createData(saveParam); + } + + /** + * 羌罅f膸 + * + * @param queryParam + * @return + */ + public Map getDetail(VariableArchiveQueryParam queryParam) { + return getVariableArchiveService(user).getDetail(queryParam); + } + + public List getCreateForm() { + return getVariableArchiveService(user).getCreateForm(); + } + + public XSSFWorkbook downloadTemplate(VariableArchiveQueryParam param) { + return getVariableArchiveService(user).downloadTemplate(param); + } + + public ExcelPreviewDTO preview(VariableArchiveImportHandleParam importParam) { + return getVariableArchiveService(user).preview(importParam); + } + + public Map importData(VariableArchiveImportHandleParam importParam) { + return getVariableArchiveService(user).importData(importParam); + } + + public XSSFWorkbook export(VariableArchiveQueryParam param) { + return getVariableArchiveService(user).export(param); + } + + public void deleteSelectVariableArchive(Collection deleteIds) { + getVariableArchiveService(user).deleteSelectVariableArchive(deleteIds); + } + + public void updateData(VariableArchiveSaveParam updateParam) { + getVariableArchiveService(user).updateData(updateParam); + } +} diff --git a/src/com/engine/salary/wrapper/VariableItemWrapper.java b/src/com/engine/salary/wrapper/VariableItemWrapper.java new file mode 100644 index 000000000..92119e90f --- /dev/null +++ b/src/com/engine/salary/wrapper/VariableItemWrapper.java @@ -0,0 +1,75 @@ +package com.engine.salary.wrapper; + + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.datacollection.dto.VariableItemListDTO; +import com.engine.salary.entity.datacollection.param.VariableItemQueryParam; +import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; +import com.engine.salary.service.VariableItemService; +import com.engine.salary.service.impl.VariableItemServiceImpl; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.valid.ValidUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + +import java.util.List; + +/** + * @Description: 羌蕁合 + * @Author: xzy + * @Date: 2024/8/6 17:39 + */ +@Slf4j +public class VariableItemWrapper extends Service { + private VariableItemService getVariableItemService(User user) { + return ServiceUtil.getService(VariableItemServiceImpl.class, user); + } + + /** + * キ羌蕁合 + * + * @param queryParam + */ + public PageInfo listPage(VariableItemQueryParam queryParam) { + return getVariableItemService(user).listPage(queryParam); + } + + /** + * 医産羌蕁合 + * + * @param saveParam + */ + public void save(VariableItemSaveParam saveParam) { + ValidUtil.doValidator(saveParam); + getVariableItemService(user).save(saveParam); + } + + /** + * 贋井貴蕁合 + * + * @param saveParam + */ + public void update(VariableItemSaveParam saveParam) { + ValidUtil.doValidator(saveParam); + getVariableItemService(user).update(saveParam); + } + + /** + * ゆ貴莎蕁合 + * + * @param itemIds + */ + public void deleteItems(List itemIds) { + getVariableItemService(user).deleteItems(itemIds); + } + + /** + * 羌蕁合莚膸篆≧ + * + * @param id + */ + public VariableItemListDTO getDetail(Long id) { + return getVariableItemService(user).getDetail(id); + } +}