Merge branch 'release/2.16.1.2410.01' into custom/宁波精华
# Conflicts: # src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java # src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java # src/com/engine/salary/mapper/datacollection/EmployMapper.java # src/com/engine/salary/mapper/datacollection/EmployMapper.xml # src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.java # src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml # src/com/engine/salary/mapper/taxagent/TaxAgentMapper.java # src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml # src/com/engine/salary/service/SalaryAcctEmployeeService.java # src/com/engine/salary/service/SalaryEmployeeService.java # src/com/engine/salary/service/TaxAgentService.java # src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java # src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java # src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java # src/com/engine/salary/service/impl/TaxAgentServiceImpl.java
This commit is contained in:
commit
558304043c
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
|||
log=false
|
||||
defaultCloseNonStandard149=true
|
||||
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
|
||||
version=2.15.1.2407.01
|
||||
version=2.16.1.2410.01
|
||||
openFormulaForcedEditing=false
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -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 ;
|
||||
/
|
||||
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD (
|
||||
type number NULL
|
||||
);
|
||||
/
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
/
|
||||
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar2(4000) 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;
|
||||
/
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -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 ;
|
||||
/
|
||||
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD (
|
||||
type number NULL
|
||||
);
|
||||
/
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
/
|
||||
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar2(4000) 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;
|
||||
/
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -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 ;
|
||||
/
|
||||
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD (
|
||||
type number NULL
|
||||
);
|
||||
/
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
/
|
||||
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar2(4000) 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
|
||||
;
|
||||
|
|
@ -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)
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id bigint;
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD COLUMN target varchar(4000) NULL ;
|
||||
ALTER TABLE hrsa_salary_sob_range ADD COLUMN target varchar(4000) NULL ;
|
||||
|
|
@ -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
|
||||
;
|
||||
|
|
@ -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
|
||||
;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD COLUMN type int(0) NULL ;
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
|
|
@ -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)
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE hrsa_salary_acct_emp ADD COLUMN lock_items varchar(4000);
|
||||
|
|
@ -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
|
||||
/
|
||||
|
|
@ -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)
|
||||
)
|
||||
/
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0)
|
||||
/
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
)
|
||||
/
|
||||
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
)
|
||||
/
|
||||
|
|
@ -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
|
||||
/
|
||||
|
|
@ -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
|
||||
/
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD (
|
||||
type number NULL
|
||||
)
|
||||
/
|
||||
|
||||
update hrsa_acct_result_template set type = 0
|
||||
/
|
||||
|
|
@ -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)
|
||||
)
|
||||
/
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar2(4000) 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;
|
||||
/
|
||||
|
|
@ -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)
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id bigint;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_tax_agent_manage_range add target VARCHAR(4000) null ;
|
||||
|
||||
alter table hrsa_salary_sob_range add target VARCHAR(4000) null ;
|
||||
|
|
@ -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 ;
|
||||
/
|
||||
|
|
@ -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
|
||||
;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_acct_result_template add type int null ;
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
|
|
@ -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)
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar(4000);
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id bigint
|
||||
GO
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD target varchar(4000) NULL
|
||||
GO
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD target varchar(4000) NULL
|
||||
GO
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD type int NULL
|
||||
GO
|
||||
|
||||
update hrsa_acct_result_template set type = 0
|
||||
GO
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE hrsa_salary_acct_emp ADD lock_items varchar(4000)
|
||||
GO
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_variable_archive add tax_agent_id NUMBER(38,0);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE hrsa_tax_agent_manage_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_range ADD (
|
||||
target varchar2(4000) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -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 ;
|
||||
/
|
||||
|
||||
|
|
@ -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;
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
ALTER TABLE hrsa_acct_result_template ADD (
|
||||
type number NULL
|
||||
);
|
||||
/
|
||||
|
||||
update hrsa_acct_result_template set type = 0;
|
||||
/
|
||||
|
||||
|
|
@ -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)
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
alter table hrsa_salary_acct_emp add lock_items varchar2(4000) NULL;
|
||||
/
|
||||
|
||||
|
|
@ -20,6 +20,9 @@ update hrsa_salary_archive set delete_type=3 where tax_agent_id=扣缴义务人
|
|||
二、删除停薪员工档案
|
||||
update hrsa_salary_archive set delete_type=3 where run_status in ('STOP_FROM_PENDING','STOP_FROM_SUSPEND')
|
||||
|
||||
二、删除停薪员工社保档案
|
||||
update hrsa_insurance_base_info set delete_type=3 where run_status in ('4','5')
|
||||
|
||||
|
||||
三、删除指定人员档案
|
||||
|
||||
|
|
|
|||
|
|
@ -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 = '工资薪金合计'
|
||||
|
||||
|
||||
# 获取档案信息
|
||||
|
||||
select i.item_value from hrsa_salary_archive_item i
|
||||
|
|
|
|||
|
|
@ -1 +1,2 @@
|
|||
formulaRunOvertimeThreshold=
|
||||
formulaRunOvertimeThreshold=100
|
||||
personNumberInOneThread = 100
|
||||
|
|
@ -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 {
|
||||
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
||||
}
|
||||
|
|
@ -107,7 +107,7 @@ public class RehireAction implements Action {
|
|||
Long taxAgentId = taxAgentPOS.get(0).getId();
|
||||
Long employeeId = Long.valueOf(empIdStr);
|
||||
List<SalaryArchivePO> 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生成档案
|
||||
InitSalaryAction initSalaryAction = new InitSalaryAction();
|
||||
return initSalaryAction.doSalaryArchiveInit(requestInfo, salaryFieldMap);
|
||||
|
|
|
|||
|
|
@ -118,6 +118,19 @@ public class EmployBiz extends BaseBean {
|
|||
}
|
||||
}
|
||||
|
||||
public PositionInfo getPositionInfoById(Long positionId) {
|
||||
if (positionId == null) {
|
||||
return null;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
EmployMapper mapper = sqlSession.getMapper(EmployMapper.class);
|
||||
return mapper.getPositionInfoById(positionId);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public List<DataCollectionEmployee> listByParams(List<SalarySobRangeEmpQueryParam> includeQueryParams) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
|
|
@ -187,6 +200,20 @@ public class EmployBiz extends BaseBean {
|
|||
}
|
||||
}
|
||||
|
||||
public SubCompanyInfo getSubCompanyInfoById(Long subCompanyId) {
|
||||
if (subCompanyId == null) {
|
||||
return null;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
EmployMapper mapper = sqlSession.getMapper(EmployMapper.class);
|
||||
return mapper.getSubCompanyInfoById(subCompanyId);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<DataCollectionEmployee> listAllForReport() {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
|
|
@ -206,4 +233,15 @@ public class EmployBiz extends BaseBean {
|
|||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public DeptInfo getDeptInfoById(Long departmentId) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
EmployMapper mapper = sqlSession.getMapper(EmployMapper.class);
|
||||
return mapper.getDeptInfoById(departmentId);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,4 +70,7 @@ public class SalaryCacheKey {
|
|||
public final static String SALARY_REPORT_DATA = "SALARY_REPORT_DATA_";
|
||||
|
||||
|
||||
public final static String UPLOAD_SALARY_CONFIG = "UPLOAD_SALARY_CONFIG";
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
package com.engine.salary.constant;
|
||||
|
||||
/**
|
||||
* @description: 默认的租户key
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2/8/22 11:25 AM
|
||||
* @version:v1.0
|
||||
*/
|
||||
* 默认租户
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
public class SalaryDefaultTenantConstant {
|
||||
|
||||
public static final String DEFAULT_TENANT_KEY = "all_teams";
|
||||
|
|
|
|||
|
|
@ -15,6 +15,11 @@ public class SalaryItemConstant {
|
|||
*/
|
||||
public static final String DYNAMIC_SUFFIX = "_salaryItem";
|
||||
|
||||
/**
|
||||
* 列表中浮动薪资项目动态列后缀标识
|
||||
*/
|
||||
public static final String VARIABLE_ITEM_DYNAMIC_SUFFIX = "_variableItem";
|
||||
|
||||
/**
|
||||
* 薪资核算导入缓存表头字段key
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
package com.engine.salary.entity.config;
|
||||
|
||||
import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig;
|
||||
import com.engine.salary.entity.salaryitem.config.SalaryItemAllConfig;
|
||||
import com.engine.salary.entity.taxagent.config.TaxAgentConfig;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentBasePO;
|
||||
import com.engine.salary.sys.config.SysConfig;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamImplicit;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@XStreamAlias("SalaryConfig")
|
||||
public class SalaryConfig {
|
||||
// //版本
|
||||
// @XStreamAlias("version")
|
||||
// @XStreamAsAttribute
|
||||
// private String version;
|
||||
//
|
||||
@XStreamAlias("SysConfig")
|
||||
private SysConfig sysConfig;
|
||||
|
||||
//社保方案
|
||||
|
||||
//薪资项目
|
||||
@XStreamAlias("SalaryItemConfig")
|
||||
private SalaryItemAllConfig salaryItemConfig;
|
||||
|
||||
//字段管理
|
||||
@XStreamAlias("ArchiveFieldConfig")
|
||||
private ArchiveFieldConfig archiveFieldConfig;
|
||||
|
||||
//分权基础设置
|
||||
@XStreamAlias("TaxAgentBaseConfig")
|
||||
private TaxAgentBasePO taxAgentBaseConfig;
|
||||
|
||||
//扣缴义务人
|
||||
@XStreamImplicit
|
||||
private List<TaxAgentConfig> taxAgentConfigs;
|
||||
|
||||
}
|
||||
|
|
@ -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<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("employeeId", m.get("resourceId"));
|
||||
|
|
|
|||
|
|
@ -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: 浮动薪资档案
|
||||
* @Author: xzy
|
||||
*/
|
||||
public class VariableArchiveBO {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SalaryArchiveBO{}";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 构建表格动态列
|
||||
*
|
||||
* @param variableItems
|
||||
*/
|
||||
public static List<WeaTableColumn> buildVariableArchiveTable(List<VariableItemPO> variableItems) {
|
||||
// 表格表头
|
||||
List<WeaTableColumn> 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, "个税扣缴义务人"), "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;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 构建薪资档案数据
|
||||
// *
|
||||
// * @param salaryArchiveList
|
||||
// * @param salaryArchiveItemDataList
|
||||
// * @param localDateRange
|
||||
// * @param allEmployeeIds
|
||||
// * @param isOnlyTaxAgent
|
||||
// * @return
|
||||
// */
|
||||
// public static List<SalaryArchiveDataDTO> buildSalaryArchiveData(List<SalaryArchivePO> salaryArchiveList,
|
||||
// List<SalaryArchiveItemPO> salaryArchiveItemDataList,
|
||||
// LocalDateRange localDateRange,
|
||||
// List<Long> allEmployeeIds,
|
||||
// boolean isOnlyTaxAgent) {
|
||||
// // 开始日期
|
||||
// Date start = localDateRange.getFromDate();
|
||||
// // 结束日期
|
||||
// Date end = localDateRange.getEndDate();
|
||||
//
|
||||
// List<SalaryArchiveDataDTO> list = new ArrayList<>();
|
||||
// allEmployeeIds.forEach(e -> {
|
||||
// // 同一个人的档案数据
|
||||
// List<SalaryArchivePO> salaryArchives = salaryArchiveList.stream().filter(f -> f.getEmployeeId().equals(e)).collect(Collectors.toList());
|
||||
// List<Long> salaryArchiveIds = salaryArchives.stream().map(SalaryArchivePO::getId).collect(Collectors.toList());
|
||||
// // 同一个人的薪资项目调整历史数据
|
||||
// List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d -> salaryArchiveIds.contains(d.getSalaryArchiveId())).collect(Collectors.toList());
|
||||
// List<Long> salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList());
|
||||
//
|
||||
// SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO();
|
||||
// salaryArchiveData.setEmployeeId(e);
|
||||
// List<SalaryArchiveTaxAgentDataDTO> taxAgents = new ArrayList<>();
|
||||
// // 按个税扣缴义务人生效日期时间段切割
|
||||
// for (SalaryArchivePO salaryArchive : salaryArchives) {
|
||||
// Date fromDate = salaryArchive.getPayStartDate();
|
||||
// Date endDate = salaryArchive.getPayEndDate();
|
||||
// // 起始发薪日不为空,且不能比结束日期晚,最后发薪日可空可不空,但是如果不为空,就不能比开始日期早,且起始发薪日不能晚于最后发薪日
|
||||
// boolean isEnable = fromDate != null && !fromDate.after(end) && (endDate == null || (!fromDate.after(endDate) && !endDate.before(start)));
|
||||
// if (isEnable) {
|
||||
// SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO();
|
||||
// taxAgent.setTaxAgentId(salaryArchive.getTaxAgentId());
|
||||
// // taxAgent.setIncomeCategory(salaryArchive.getIncomeCategory());
|
||||
// // taxAgent.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());
|
||||
// // 薪资项目数据按个税扣缴义务人切割
|
||||
// if (!isOnlyTaxAgent) {
|
||||
// // 开始日期
|
||||
// Date startItem = taxAgent.getEffectiveDateRange().getFromDate();
|
||||
// // 结束日期
|
||||
// Date endItem = taxAgent.getEffectiveDateRange().getEndDate();
|
||||
// Date endTempItem = endItem;
|
||||
// List<SalaryArchiveItemDataDTO> 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<TaxAgentEmpChangePO> taxAgentEmpChangeList, List<SalaryArchivePO> salaryArchiveList, List<SalaryArchiveItemPO> salaryArchiveItemList, Long currentEmployeeId) {
|
||||
// List<Long> changeIds = taxAgentEmpChangeList.stream().map(TaxAgentEmpChangePO::getId).collect(Collectors.toList());
|
||||
// // 根据个税扣缴义务人和人员以及增量类型分组
|
||||
// Map<String, Long> 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<TaxAgentEmpChangePO> 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<String> stopStatus = Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue());
|
||||
// List<SalaryArchivePO> salaryArchiveAddTodoList = Lists.newArrayList();
|
||||
// List<SalaryArchivePO> salaryArchiveUpdateTodoList = Lists.newArrayList();
|
||||
// List<SalaryArchiveItemPO> salaryArchiveItemAddTodos = Lists.newArrayList();
|
||||
//
|
||||
// Map<String, SalaryArchivePO> salaryArchiveListMap = SalaryEntityUtil.convert2Map(salaryArchiveList, k -> k.getTaxAgentId() + "-" + k.getEmployeeId());
|
||||
// taxAgentEmpChanges.forEach(change -> {
|
||||
// SalaryArchivePO salaryArchive = salaryArchiveListMap.get(change.getTaxAgentId() + "-" + change.getEmployeeId());
|
||||
// // 如果是新增 说明:如果没有档案,则新增,如果有档案而且是停薪,就挪到待定薪中,以个税扣缴义务人和人员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<SalaryArchiveItemPO> 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());
|
||||
// }
|
||||
// // 如果是删除 说明:如果有档案并且是在定薪列表才处理,没档案不用管
|
||||
// } 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 {
|
||||
//
|
||||
// /**
|
||||
// * 批量修改薪资档案
|
||||
// */
|
||||
// private List<SalaryArchivePO> salaryArchiveAddTodoList;
|
||||
//
|
||||
// /**
|
||||
// * 批量新增薪资档案
|
||||
// */
|
||||
// private List<SalaryArchivePO> salaryArchiveUpdateTodoList;
|
||||
//
|
||||
// /**
|
||||
// * 落库处理薪资项目
|
||||
// */
|
||||
// private List<SalaryArchiveItemPO> salaryArchiveItemAddTodos;
|
||||
//
|
||||
// /**
|
||||
// * 删除增量数据
|
||||
// */
|
||||
// private List<Long> changeIds;
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
@ -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: 浮动薪资档案-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, "个税扣缴义务人");
|
||||
taxAgentRangeMsg = SalaryI18nUtil.getI18nLabel(132633, "该员工不在该个税扣缴义务人的人员范围中") + "," + 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, "个税扣缴义务人不存在");
|
||||
incomeCategoryNoExist = SalaryI18nUtil.getI18nLabel(121923, "收入所得项目不存在");
|
||||
|
||||
currSalarySobI18n = SalaryI18nUtil.getI18nLabel(127213, "该收入所得项目");
|
||||
noExist = SalaryI18nUtil.getI18nLabel(127236, "不存在");
|
||||
|
||||
effectiveTimeErr = SalaryI18nUtil.getI18nLabel(102497, "生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'");
|
||||
adjustReasonNoExist = SalaryI18nUtil.getI18nLabel(100591, "调整原因不存在");
|
||||
|
||||
dateErr = SalaryI18nUtil.getI18nLabel(109819, "日期错误或格式不正确,正确格式示例为'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, "该员工的薪资档案记录有误,请检查");
|
||||
numberErr = SalaryI18nUtil.getI18nLabel(100581, "请输入数字");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验单行数据
|
||||
*
|
||||
* @param map
|
||||
* @param headers
|
||||
* @param excelComments
|
||||
* @param errorCount
|
||||
* @param importHandleParam
|
||||
* @return
|
||||
*/
|
||||
public static boolean singleRowCheck(List<String> allTodoVariableArchives,
|
||||
Map<String, Object> map,
|
||||
List<String> headers,
|
||||
List<Map<String, String>> 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<DataCollectionEmployee> emps = new ArrayList<>();
|
||||
if ("0".equals(validType)) {
|
||||
//“0”代表姓名+部门+手机号的匹配原则,“1”代表工号为唯一匹配原则
|
||||
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<Long> 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<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowindex + "查找人员失败,请确定姓名、部门、手机号正确且唯一");
|
||||
excelComments.add(errorMessageMap);
|
||||
isError = true;
|
||||
return isError;
|
||||
}
|
||||
|
||||
// 个税扣缴义务人
|
||||
String taxAgentCellVal = Optional.ofNullable(map.get(taxAgentI18n)).orElse("").toString();
|
||||
map.put("taxAgent", taxAgentCellVal);
|
||||
Optional<TaxAgentManageRangeEmployeeDTO> optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getTaxAgentName().equals(taxAgentCellVal)).findFirst();
|
||||
if (!optionalTaxAgent.isPresent()) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowindex + "个税扣缴义务人不存在,或不在权限范围内");
|
||||
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<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowindex + "存在重复数据");
|
||||
excelComments.add(errorMessageMap);
|
||||
isError = true;
|
||||
return isError;
|
||||
} else {
|
||||
allTodoVariableArchives.add(repeatKey);
|
||||
}
|
||||
|
||||
// 构建薪资档案
|
||||
VariableArchivePO finalVariableArchive = buildVariableArchive(employeeId, taxAgentId, importHandleParam);
|
||||
map.put("variableArchiveId", finalVariableArchive.getId());
|
||||
List<Long> 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<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowindex + header + empRepeatMsg);
|
||||
excelComments.add(errorMessageMap);
|
||||
isError = true;
|
||||
}
|
||||
} else {
|
||||
// 浮动薪资项目数据
|
||||
if (!isError) {
|
||||
Optional<VariableItemPO> 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<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowindex + key + numberErr);
|
||||
excelComments.add(errorMessageMap);
|
||||
isError = true;
|
||||
}
|
||||
Long variableItemId = variableItemPO.getId();
|
||||
// 已生效
|
||||
List<VariableArchiveItemPO> 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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构建浮动薪资档案对象
|
||||
*
|
||||
* @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) {
|
||||
// 新增浮动档案
|
||||
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{}";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.engine.salary.entity.datacollection.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 浮动薪酬档案明细
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author xzy
|
||||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class VariableArchiveItemDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 浮动项目id
|
||||
*/
|
||||
private Long variableItemId;
|
||||
|
||||
/**
|
||||
* 浮动值
|
||||
*/
|
||||
private String itemValue;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 浮动薪资档案列表
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* 个税扣缴义务人
|
||||
*/
|
||||
@TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
|
||||
@I18n
|
||||
private String taxAgentName;
|
||||
|
||||
/**
|
||||
* 个税扣缴义务人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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 浮动薪资项目列表
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @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;
|
||||
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 考勤引用是否可以操作参数
|
||||
|
|
@ -30,5 +31,5 @@ public class AttendQuoteCheckOperationParam {
|
|||
|
||||
//关联账套id
|
||||
@DataCheck(require = true, message = "关联账套id必传")
|
||||
private Long salarySobId;
|
||||
private List<Long> salarySobIds;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,11 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据采集-考勤引用数据同步参数
|
||||
|
|
@ -28,7 +30,7 @@ public class AttendQuoteDataSyncParam {
|
|||
private String salaryYearMonth;
|
||||
|
||||
//关联账套id
|
||||
private Long salarySobId;
|
||||
private List<Long> salarySobIds;
|
||||
|
||||
//账套外人员主键id
|
||||
private Collection<Long> employeeIds;
|
||||
|
|
@ -43,7 +45,7 @@ public class AttendQuoteDataSyncParam {
|
|||
if (StringUtils.isEmpty(saveParam.getSalaryYearMonth())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100294, "薪资所属月必传"));
|
||||
}
|
||||
if (saveParam.getSalarySobId() == null) {
|
||||
if (CollectionUtils.isEmpty(saveParam.getSalarySobIds())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100295, "薪资账套必传"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 数据采集-浮动薪酬导入参数
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @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<DataCollectionEmployee> employees;
|
||||
|
||||
/**
|
||||
* 获取所有可被引用的浮动薪资项目
|
||||
*/
|
||||
List<VariableItemPO> variableItems;
|
||||
|
||||
/**
|
||||
* 查询已有的浮动薪资档案基本数据
|
||||
*/
|
||||
Map<String, VariableArchivePO> variableArchivesMap;
|
||||
|
||||
/**
|
||||
* 浮动薪资项目id
|
||||
*/
|
||||
Collection<Long> variableItemIds;
|
||||
|
||||
/**
|
||||
* 查询已生效的浮动薪资项目数据
|
||||
*/
|
||||
Map<String, List<VariableArchiveItemPO>> effectiveItemListMap;
|
||||
|
||||
/**
|
||||
* 获取所有个税扣缴义务人
|
||||
*/
|
||||
Collection<TaxAgentManageRangeEmployeeDTO> taxAgentList;
|
||||
|
||||
/**
|
||||
* 当前时间
|
||||
*/
|
||||
Date nowTime = new Date();
|
||||
|
||||
/**
|
||||
* 当天
|
||||
*/
|
||||
Date today = new Date();
|
||||
|
||||
/**
|
||||
* 待保存浮动薪资档案
|
||||
*/
|
||||
List<VariableArchivePO> variableArchiveSaves;
|
||||
|
||||
/**
|
||||
* 待保存浮动薪资档案-浮动薪资项目
|
||||
*/
|
||||
List<VariableArchiveItemPO> variableArchiveItemSaves;
|
||||
|
||||
/**
|
||||
* 待删除浮动薪资档案-浮动薪资项目
|
||||
*/
|
||||
List<Long> variableArchiveItemDelSalaryItemIds;
|
||||
}
|
||||
|
|
@ -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<Long> ids;
|
||||
|
||||
// 主键id
|
||||
private Long id;
|
||||
|
||||
// 个税扣缴义务人
|
||||
private List<Long> taxAgentIds;
|
||||
|
||||
// 薪资年月
|
||||
@DataCheck(require = true,message = "薪资所属月不能为空")
|
||||
private String salaryMonth;
|
||||
|
||||
private Date salaryMonthDate;
|
||||
|
||||
// 姓名
|
||||
private String username;
|
||||
|
||||
// 部门id
|
||||
private List<Long> departmentIds;
|
||||
|
||||
// 工号
|
||||
private String workcode;
|
||||
|
||||
// 下载模板是否带数据
|
||||
private boolean hasData;
|
||||
|
||||
private List<Long> employeeIds;
|
||||
|
||||
private List<String> columns;
|
||||
}
|
||||
|
|
@ -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
|
||||
//数据采集-浮动薪酬档案保存参数
|
||||
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<VariableArchiveItemDTO> itemValueList;
|
||||
}
|
||||
|
|
@ -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<Long> itemIds;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>Copyright: Copyright (c) 2024</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
|
|
@ -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 浮动薪酬档案明细
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class VariableArchiveItemPO {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 员工id
|
||||
*/
|
||||
private Long employeeId;
|
||||
|
||||
/**
|
||||
* 浮动薪资档案主键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<Long> ids;
|
||||
private Collection<Long> variableArchiveIds;
|
||||
|
||||
}
|
||||
|
|
@ -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 浮动薪酬档案
|
||||
*/
|
||||
|
||||
@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<Long> ids;
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue