diff --git a/resource/sqlupgrade/DM/sql202303130101.sql b/resource/sqlupgrade/DM/sql202303130101.sql new file mode 100644 index 000000000..671629174 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202303130101.sql @@ -0,0 +1,23 @@ +delete from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/DM/sql202303130202.sql b/resource/sqlupgrade/DM/sql202303130202.sql new file mode 100644 index 000000000..9038f9cd1 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202303130202.sql @@ -0,0 +1,14 @@ +Delete from LeftMenuInfo where id=100186; +/ + +Delete from LeftMenuConfig where infoid=100186; +/ + +call LMConfig_U_ByInfoInsert (2,100118,9); +/ + +call LMInfo_Insert (100186,541290,'','',2,100118,9,18); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/DM/sql202303150403.sql b/resource/sqlupgrade/DM/sql202303150403.sql new file mode 100644 index 000000000..1de44bdc4 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202303150403.sql @@ -0,0 +1,74 @@ +ALTER TABLE hrsa_tax_agent_emp ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_archive ADD employee_type number; +/ + +ALTER TABLE hrsa_tax_agent_emp_change ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_acct_emp ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_send_info ADD employee_type number; +/ + +CREATE TABLE hrsa_external_employee +( + id NUMBER(38,0) primary key NOT NULL, + username varchar2(200) DEFAULT '', + department_name varchar2(200) DEFAULT '', + department_id NUMBER(38,0) DEFAULT 0, + subcompany_name varchar2(200) DEFAULT '', + subcompany_id NUMBER(38,0) DEFAULT 0, + jobtitle_name varchar2(200) DEFAULT '', + jobtitle_id NUMBER(38,0) DEFAULT 0, + companystartdate varchar2(200) DEFAULT '', + mobile varchar2(20) DEFAULT '', + status varchar2(10) DEFAULT '', + workcode varchar2(200) DEFAULT '', + sex varchar2(10) DEFAULT '', + email varchar2(200) DEFAULT '', + telephone varchar2(200) DEFAULT '', + jobcall varchar2(200) DEFAULT '', + birthday varchar2(200) DEFAULT '', + id_no varchar2(200) DEFAULT '', + bank_card_num varchar2(200) DEFAULT '', + bank_name varchar2(200) DEFAULT '', + delete_type number DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + modifier NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + tenant_key varchar2(200) DEFAULT '' +); +/ + +CREATE TABLE hrsa_salary_sob_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + salary_sob_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +); +/ + +CREATE TABLE hrsa_tax_agent_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +); +/ + diff --git a/resource/sqlupgrade/DM/sql202307200603.sql b/resource/sqlupgrade/DM/sql202307200603.sql new file mode 100644 index 000000000..849cc35dc --- /dev/null +++ b/resource/sqlupgrade/DM/sql202307200603.sql @@ -0,0 +1,14 @@ +declare +datashowset_id NUMBER; +hrmjobgroups_id NUMBER; +begin +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA, SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL, BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER, WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME, onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl, isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL, '', '', '0', SYS_GUID(), '', '', '', '', '1', 0, 1); +SELECT max(id) INTO datashowset_id FROM DATASHOWSET; +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('salaryExtEmp', '0', 0, TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '姓名', 'username', '', 1, 1, SYS_GUID(), NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '手机号', 'mobile', '', 0, 2, SYS_GUID(), NULL); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '姓名', 'username', '2', '', 1, SYS_GUID(), ''); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '手机号', 'mobile', '2', '', 2, SYS_GUID(), ''); +end; +/ + diff --git a/resource/sqlupgrade/DM/sql202308080403.sql b/resource/sqlupgrade/DM/sql202308080403.sql new file mode 100644 index 000000000..df4bb57b5 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202308080403.sql @@ -0,0 +1,12 @@ +alter table hrsa_salary_sob_item + add rounding_mode NUMBER null; +/ + +alter table hrsa_salary_sob_item + add pattern NUMBER null; +/ + +alter table hrsa_salary_sob_item + add value_type NUMBER null; +/ + diff --git a/resource/sqlupgrade/DM/sql202308080503.sql b/resource/sqlupgrade/DM/sql202308080503.sql new file mode 100644 index 000000000..771c36cba --- /dev/null +++ b/resource/sqlupgrade/DM/sql202308080503.sql @@ -0,0 +1,14 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +); +/ + diff --git a/resource/sqlupgrade/DM/sql202308090203.sql b/resource/sqlupgrade/DM/sql202308090203.sql new file mode 100644 index 000000000..ee8394990 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202308090203.sql @@ -0,0 +1,48 @@ +ALTER Table hrsa_social_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_social_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_social_archives drop column employee_id; +/ + +alter table hrsa_social_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_social_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_fund_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_fund_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_fund_archives drop column employee_id; +/ + +alter table hrsa_fund_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_fund_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_other_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_other_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_other_archives drop column employee_id; +/ + +alter table hrsa_other_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_other_archives MODIFY (employee_id not null); +/ + +ALTER TABLE hrsa_insurance_base_info ADD employee_type number; +/ + diff --git a/resource/sqlupgrade/DM/sql202308170403.sql b/resource/sqlupgrade/DM/sql202308170403.sql new file mode 100644 index 000000000..c06c2bd26 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202308170403.sql @@ -0,0 +1,9 @@ +update hrsa_salary_sob_item a set rounding_mode = (select rounding_mode from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.rounding_mode is null or a.rounding_mode=''); +/ + +update hrsa_salary_sob_item a set pattern = (select pattern from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.pattern is null or a.pattern=''); +/ + +update hrsa_salary_sob_item a set value_type = (select value_type from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.value_type is null or a.value_type=''); +/ + diff --git a/resource/sqlupgrade/GS/sql202308090203.sql b/resource/sqlupgrade/GS/sql202308090203.sql new file mode 100644 index 000000000..ee8394990 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202308090203.sql @@ -0,0 +1,48 @@ +ALTER Table hrsa_social_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_social_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_social_archives drop column employee_id; +/ + +alter table hrsa_social_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_social_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_fund_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_fund_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_fund_archives drop column employee_id; +/ + +alter table hrsa_fund_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_fund_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_other_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_other_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_other_archives drop column employee_id; +/ + +alter table hrsa_other_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_other_archives MODIFY (employee_id not null); +/ + +ALTER TABLE hrsa_insurance_base_info ADD employee_type number; +/ + diff --git a/resource/sqlupgrade/JC/sql202303130101.sql b/resource/sqlupgrade/JC/sql202303130101.sql new file mode 100644 index 000000000..671629174 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202303130101.sql @@ -0,0 +1,23 @@ +delete from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/JC/sql202303130202.sql b/resource/sqlupgrade/JC/sql202303130202.sql new file mode 100644 index 000000000..9038f9cd1 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202303130202.sql @@ -0,0 +1,14 @@ +Delete from LeftMenuInfo where id=100186; +/ + +Delete from LeftMenuConfig where infoid=100186; +/ + +call LMConfig_U_ByInfoInsert (2,100118,9); +/ + +call LMInfo_Insert (100186,541290,'','',2,100118,9,18); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/JC/sql202303150403.sql b/resource/sqlupgrade/JC/sql202303150403.sql new file mode 100644 index 000000000..1de44bdc4 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202303150403.sql @@ -0,0 +1,74 @@ +ALTER TABLE hrsa_tax_agent_emp ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_archive ADD employee_type number; +/ + +ALTER TABLE hrsa_tax_agent_emp_change ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_acct_emp ADD employee_type number; +/ + +ALTER TABLE hrsa_salary_send_info ADD employee_type number; +/ + +CREATE TABLE hrsa_external_employee +( + id NUMBER(38,0) primary key NOT NULL, + username varchar2(200) DEFAULT '', + department_name varchar2(200) DEFAULT '', + department_id NUMBER(38,0) DEFAULT 0, + subcompany_name varchar2(200) DEFAULT '', + subcompany_id NUMBER(38,0) DEFAULT 0, + jobtitle_name varchar2(200) DEFAULT '', + jobtitle_id NUMBER(38,0) DEFAULT 0, + companystartdate varchar2(200) DEFAULT '', + mobile varchar2(20) DEFAULT '', + status varchar2(10) DEFAULT '', + workcode varchar2(200) DEFAULT '', + sex varchar2(10) DEFAULT '', + email varchar2(200) DEFAULT '', + telephone varchar2(200) DEFAULT '', + jobcall varchar2(200) DEFAULT '', + birthday varchar2(200) DEFAULT '', + id_no varchar2(200) DEFAULT '', + bank_card_num varchar2(200) DEFAULT '', + bank_name varchar2(200) DEFAULT '', + delete_type number DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + modifier NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + tenant_key varchar2(200) DEFAULT '' +); +/ + +CREATE TABLE hrsa_salary_sob_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + salary_sob_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +); +/ + +CREATE TABLE hrsa_tax_agent_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +); +/ + diff --git a/resource/sqlupgrade/JC/sql202307200603.sql b/resource/sqlupgrade/JC/sql202307200603.sql new file mode 100644 index 000000000..849cc35dc --- /dev/null +++ b/resource/sqlupgrade/JC/sql202307200603.sql @@ -0,0 +1,14 @@ +declare +datashowset_id NUMBER; +hrmjobgroups_id NUMBER; +begin +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA, SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL, BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER, WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME, onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl, isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL, '', '', '0', SYS_GUID(), '', '', '', '', '1', 0, 1); +SELECT max(id) INTO datashowset_id FROM DATASHOWSET; +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('salaryExtEmp', '0', 0, TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '姓名', 'username', '', 1, 1, SYS_GUID(), NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '手机号', 'mobile', '', 0, 2, SYS_GUID(), NULL); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '姓名', 'username', '2', '', 1, SYS_GUID(), ''); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '手机号', 'mobile', '2', '', 2, SYS_GUID(), ''); +end; +/ + diff --git a/resource/sqlupgrade/JC/sql202308080403.sql b/resource/sqlupgrade/JC/sql202308080403.sql new file mode 100644 index 000000000..df4bb57b5 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202308080403.sql @@ -0,0 +1,12 @@ +alter table hrsa_salary_sob_item + add rounding_mode NUMBER null; +/ + +alter table hrsa_salary_sob_item + add pattern NUMBER null; +/ + +alter table hrsa_salary_sob_item + add value_type NUMBER null; +/ + diff --git a/resource/sqlupgrade/JC/sql202308080503.sql b/resource/sqlupgrade/JC/sql202308080503.sql new file mode 100644 index 000000000..771c36cba --- /dev/null +++ b/resource/sqlupgrade/JC/sql202308080503.sql @@ -0,0 +1,14 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202308090203.sql b/resource/sqlupgrade/JC/sql202308090203.sql new file mode 100644 index 000000000..ee8394990 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202308090203.sql @@ -0,0 +1,48 @@ +ALTER Table hrsa_social_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_social_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_social_archives drop column employee_id; +/ + +alter table hrsa_social_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_social_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_fund_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_fund_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_fund_archives drop column employee_id; +/ + +alter table hrsa_fund_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_fund_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_other_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_other_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_other_archives drop column employee_id; +/ + +alter table hrsa_other_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_other_archives MODIFY (employee_id not null); +/ + +ALTER TABLE hrsa_insurance_base_info ADD employee_type number; +/ + diff --git a/resource/sqlupgrade/JC/sql202308170403.sql b/resource/sqlupgrade/JC/sql202308170403.sql new file mode 100644 index 000000000..c06c2bd26 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202308170403.sql @@ -0,0 +1,9 @@ +update hrsa_salary_sob_item a set rounding_mode = (select rounding_mode from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.rounding_mode is null or a.rounding_mode=''); +/ + +update hrsa_salary_sob_item a set pattern = (select pattern from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.pattern is null or a.pattern=''); +/ + +update hrsa_salary_sob_item a set value_type = (select value_type from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.value_type is null or a.value_type=''); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202303130101.sql b/resource/sqlupgrade/Mysql/sql202303130101.sql new file mode 100644 index 000000000..c03a6e987 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202303130101.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 541290 and ( indexdesc is null or indexdesc = '' ) +; +insert into HtmlLabelIndex(id,indexdesc) select 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( indexdesc is not null and indexdesc <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=char_length(labelname) ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=char_length(labelname) )) limit 1 +; +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202303130202.sql b/resource/sqlupgrade/Mysql/sql202303130202.sql new file mode 100644 index 000000000..81f96bbd2 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202303130202.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100186 +; +Delete from LeftMenuConfig where infoid=100186 +; +call LMConfig_U_ByInfoInsert (2,100118,9) +; +call LMInfo_Insert (100186,541290,'','',2,100118,9,18) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202303150403.sql b/resource/sqlupgrade/Mysql/sql202303150403.sql new file mode 100644 index 000000000..0311cd908 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202303150403.sql @@ -0,0 +1,78 @@ +ALTER TABLE hrsa_tax_agent_emp + ADD COLUMN employee_type int(0) NULL ; + + +ALTER TABLE hrsa_salary_archive + ADD COLUMN employee_type int(0) NULL ; + + +ALTER TABLE hrsa_tax_agent_emp_change + ADD COLUMN employee_type int(0) NULL ; + +ALTER TABLE hrsa_salary_acct_emp + ADD COLUMN employee_type int(0) NULL ; + +ALTER TABLE hrsa_salary_send_info ADD COLUMN employee_type int(0) ; + +CREATE TABLE hrsa_external_employee +( + id bigint(0) NOT NULL, + username varchar(255) NULL DEFAULT NULL COMMENT '姓名', + department_name varchar(255) NULL DEFAULT NULL COMMENT '部门', + department_id bigint(0) NULL DEFAULT NULL COMMENT '部门ID', + subcompany_name varchar(255) NULL DEFAULT NULL COMMENT '分部', + subcompany_id bigint(0) NULL DEFAULT NULL COMMENT '分部ID', + jobtitle_name varchar(255) NULL DEFAULT NULL COMMENT '岗位', + jobtitle_id bigint(0) NULL DEFAULT NULL COMMENT '岗位ID', + companystartdate varchar(255) NULL DEFAULT NULL COMMENT '入职日期', + mobile varchar(255) NULL DEFAULT NULL COMMENT '手机', + status varchar(255) NULL DEFAULT NULL COMMENT '状态编码', + workcode varchar(255) NULL DEFAULT NULL COMMENT '工号', + sex varchar(255) NULL DEFAULT NULL COMMENT '性别', + email varchar(255) NULL DEFAULT NULL COMMENT '邮件', + telephone varchar(255) NULL DEFAULT NULL COMMENT '电话', + jobcall varchar(255) NULL DEFAULT NULL COMMENT '职称', + birthday varchar(255) NULL DEFAULT NULL COMMENT '出生日期', + id_no varchar(255) NULL DEFAULT NULL COMMENT '身份证号码', + bank_card_num varchar(255) NULL DEFAULT NULL COMMENT '本人开户的银行卡卡号', + bank_name varchar(255) NULL DEFAULT NULL COMMENT '本人开户的银行卡开户支行全称', + delete_type int(0) NULL DEFAULT NULL COMMENT '是否已删除。0:未删除、1:已删除', + creator bigint(0) NULL DEFAULT NULL COMMENT '创建人', + modifier bigint(0) NULL DEFAULT NULL COMMENT '修改人', + create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + update_time datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + tenant_key varchar(255) NULL DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (id) USING BTREE +); + +CREATE TABLE hrsa_salary_sob_ext_range +( + id bigint(0) NOT NULL COMMENT '主键id', + salary_sob_id bigint(0) NOT NULL DEFAULT 0 COMMENT '账套id', + target_type tinyint(0) NOT NULL DEFAULT 1 COMMENT '对象类型。1:外部人员', + target_id bigint(0) NOT NULL DEFAULT 0 COMMENT '对象id', + creator bigint(0) NOT NULL DEFAULT 0 COMMENT '创建人', + create_time datetime(0) NOT NULL COMMENT '创建时间', + update_time datetime(0) NOT NULL COMMENT '更新时间', + delete_type int(0) NOT NULL DEFAULT 0 COMMENT '是否已删除。0:未删除、1:已删除', + tenant_key varchar(10) NOT NULL DEFAULT '' COMMENT '租户ID', + PRIMARY KEY (id) USING BTREE, + INDEX idx_tenant(tenant_key) USING BTREE, + INDEX idx_tenant_key(tenant_key) USING BTREE +); + +CREATE TABLE hrsa_tax_agent_ext_range +( + id bigint(0) NOT NULL COMMENT '主键id', + tax_agent_id bigint(0) NOT NULL DEFAULT 0 COMMENT '个税扣缴义务人的id', + target_type tinyint(0) NOT NULL DEFAULT 1 COMMENT '对象类型。1:外部人员', + target_id bigint(0) NOT NULL DEFAULT 0 COMMENT '对象id', + creator bigint(0) NOT NULL DEFAULT 0 COMMENT '创建人', + create_time datetime(0) NOT NULL COMMENT '创建时间', + update_time datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP (0) COMMENT '更新时间', + delete_type int(0) NOT NULL DEFAULT 0 COMMENT '是否已删除。0:未删除、1:已删除', + tenant_key varchar(10) NOT NULL DEFAULT '' COMMENT '租户ID', + PRIMARY KEY (id) USING BTREE, + INDEX idx_tenant(tenant_key) USING BTREE, + INDEX idx_tenant_key(tenant_key) USING BTREE +); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202307200603.sql b/resource/sqlupgrade/Mysql/sql202307200603.sql new file mode 100644 index 000000000..e211c560e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202307200603.sql @@ -0,0 +1,17 @@ +select @current_date:= date_format( now(),'%Y-%m-%d'); +select @current_time:= date_format( now(),'%T'); +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA,SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL,BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER,WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME,onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl,isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', @current_date,@current_time, NULL, NULL, '', '', '0', uuid(), '', '', '', '', '1', 0, 1); + +select @datashowset_id:= max(id)from datashowset; + +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) +VALUES ('salaryExtEmp', '0', 0, @current_date, @current_time, NULL, NULL); + +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) +VALUES (@datashowset_id, '姓名', 'username', '', 1, 1, uuid(), NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) +VALUES (@datashowset_id, '手机号', 'mobile', '', 0, 2, uuid(), NULL); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) +VALUES (@datashowset_id, '姓名', 'username', '2', '', 1, uuid(), ''); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) +VALUES (@datashowset_id, '手机号', 'mobile', '2', '', 2, uuid(), ''); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202308080403.sql b/resource/sqlupgrade/Mysql/sql202308080403.sql new file mode 100644 index 000000000..841e22e7a --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202308080403.sql @@ -0,0 +1,4 @@ +ALTER TABLE hrsa_salary_sob_item +ADD COLUMN rounding_mode int NULL, +ADD COLUMN pattern int NULL, +ADD COLUMN value_type int NULL; diff --git a/resource/sqlupgrade/Mysql/sql202308080503.sql b/resource/sqlupgrade/Mysql/sql202308080503.sql new file mode 100644 index 000000000..8ea1db64c --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202308080503.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) ; diff --git a/resource/sqlupgrade/Mysql/sql202308090203.sql b/resource/sqlupgrade/Mysql/sql202308090203.sql new file mode 100644 index 000000000..34eed003a --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202308090203.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_social_archives +MODIFY COLUMN employee_id bigint; +ALTER TABLE hrsa_fund_archives +MODIFY COLUMN employee_id bigint; +ALTER TABLE hrsa_other_archives +MODIFY COLUMN employee_id bigint; + +ALTER TABLE hrsa_insurance_base_info ADD employee_type int NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202308170403.sql b/resource/sqlupgrade/Mysql/sql202308170403.sql new file mode 100644 index 000000000..3cc8d00fa --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202308170403.sql @@ -0,0 +1,7 @@ +update hrsa_salary_sob_item a set rounding_mode = (select rounding_mode from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.rounding_mode is null or a.rounding_mode=''); + + +update hrsa_salary_sob_item a set pattern = (select pattern from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.pattern is null or a.pattern=''); + + +update hrsa_salary_sob_item a set value_type = (select value_type from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.value_type is null or a.value_type=''); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202303130101.sql b/resource/sqlupgrade/Oracle/sql202303130101.sql new file mode 100644 index 000000000..99adf5d4f --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202303130101.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is null ) +/ +insert into HtmlLabelIndex(id,indexdesc) select 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( trim(indexdesc) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202303130202.sql b/resource/sqlupgrade/Oracle/sql202303130202.sql new file mode 100644 index 000000000..d6b3c8be5 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202303130202.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100186 +/ +Delete from LeftMenuConfig where infoid=100186 +/ +call LMConfig_U_ByInfoInsert (2,100118,9) +/ +call LMInfo_Insert (100186,541290,'','',2,100118,9,18) +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202303150403.sql b/resource/sqlupgrade/Oracle/sql202303150403.sql new file mode 100644 index 000000000..925fcc20b --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202303150403.sql @@ -0,0 +1,74 @@ +ALTER TABLE hrsa_tax_agent_emp ADD employee_type number +/ + +ALTER TABLE hrsa_salary_archive ADD employee_type number +/ + +ALTER TABLE hrsa_tax_agent_emp_change ADD employee_type number +/ + +ALTER TABLE hrsa_salary_acct_emp ADD employee_type number +/ + +ALTER TABLE hrsa_salary_send_info ADD employee_type number +/ + + +CREATE TABLE hrsa_external_employee +( + id NUMBER(38,0) primary key NOT NULL, + username varchar2(200) DEFAULT '', + department_name varchar2(200) DEFAULT '', + department_id NUMBER(38,0) DEFAULT 0, + subcompany_name varchar2(200) DEFAULT '', + subcompany_id NUMBER(38,0) DEFAULT 0, + jobtitle_name varchar2(200) DEFAULT '', + jobtitle_id NUMBER(38,0) DEFAULT 0, + companystartdate varchar2(200) DEFAULT '', + mobile varchar2(20) DEFAULT '', + status varchar2(10) DEFAULT '', + workcode varchar2(200) DEFAULT '', + sex varchar2(10) DEFAULT '', + email varchar2(200) DEFAULT '', + telephone varchar2(200) DEFAULT '', + jobcall varchar2(200) DEFAULT '', + birthday varchar2(200) DEFAULT '', + id_no varchar2(200) DEFAULT '', + bank_card_num varchar2(200) DEFAULT '', + bank_name varchar2(200) DEFAULT '', + delete_type number DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + modifier NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + tenant_key varchar2(200) DEFAULT '' +) +/ + +CREATE TABLE hrsa_salary_sob_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + salary_sob_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +) +/ + +CREATE TABLE hrsa_tax_agent_ext_range +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) DEFAULT 0, + target_type NUMBER(38,0) DEFAULT 0, + target_id NUMBER(38,0) DEFAULT 0, + creator NUMBER(38,0) DEFAULT 0, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + delete_type number DEFAULT 0, + tenant_key varchar2(200) DEFAULT '' +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202307200603.sql b/resource/sqlupgrade/Oracle/sql202307200603.sql new file mode 100644 index 000000000..0700475ea --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202307200603.sql @@ -0,0 +1,13 @@ +declare +datashowset_id NUMBER; +hrmjobgroups_id NUMBER; +begin +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA, SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL, BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER, WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME, onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl, isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL, '', '', '0', SYS_GUID(), '', '', '', '', '1', 0, 1); +SELECT max(id) INTO datashowset_id FROM DATASHOWSET; +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('salaryExtEmp', '0', 0, TO_CHAR(SYSDATE,'yyyy-MM-dd'), TO_CHAR(SYSDATE,'HH24:mm:ss'), NULL, NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '姓名', 'username', '', 1, 1, SYS_GUID(), NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (datashowset_id, '手机号', 'mobile', '', 0, 2, SYS_GUID(), NULL); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '姓名', 'username', '2', '', 1, SYS_GUID(), ''); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (datashowset_id, '手机号', 'mobile', '2', '', 2, SYS_GUID(), ''); +end; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202308080403.sql b/resource/sqlupgrade/Oracle/sql202308080403.sql new file mode 100644 index 000000000..c34571ba4 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202308080403.sql @@ -0,0 +1,11 @@ +alter table hrsa_salary_sob_item + add rounding_mode NUMBER null +/ + +alter table hrsa_salary_sob_item + add pattern NUMBER null +/ + +alter table hrsa_salary_sob_item + add value_type NUMBER null +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202308080503.sql b/resource/sqlupgrade/Oracle/sql202308080503.sql new file mode 100644 index 000000000..6ac9927fd --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202308080503.sql @@ -0,0 +1,13 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202308090203.sql b/resource/sqlupgrade/Oracle/sql202308090203.sql new file mode 100644 index 000000000..f901fc9a3 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202308090203.sql @@ -0,0 +1,36 @@ +ALTER Table hrsa_social_archives Add employee_id2 NUMBER(38,0) +/ +update hrsa_social_archives a SET a.employee_id2=a.employee_id +/ +alter table hrsa_social_archives drop column employee_id +/ +alter table hrsa_social_archives rename column employee_id2 to employee_id +/ +alter table hrsa_social_archives MODIFY (employee_id not null) +/ + +ALTER Table hrsa_fund_archives Add employee_id2 NUMBER(38,0) +/ +update hrsa_fund_archives a SET a.employee_id2=a.employee_id +/ +alter table hrsa_fund_archives drop column employee_id +/ +alter table hrsa_fund_archives rename column employee_id2 to employee_id +/ +alter table hrsa_fund_archives MODIFY (employee_id not null) +/ + +ALTER Table hrsa_other_archives Add employee_id2 NUMBER(38,0) +/ +update hrsa_other_archives a SET a.employee_id2=a.employee_id +/ +alter table hrsa_other_archives drop column employee_id +/ +alter table hrsa_other_archives rename column employee_id2 to employee_id +/ +alter table hrsa_other_archives MODIFY (employee_id not null) +/ + + +ALTER TABLE hrsa_insurance_base_info ADD employee_type number +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202308170403.sql b/resource/sqlupgrade/Oracle/sql202308170403.sql new file mode 100644 index 000000000..dd2c7fecf --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202308170403.sql @@ -0,0 +1,10 @@ +update hrsa_salary_sob_item a set rounding_mode = (select rounding_mode from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.rounding_mode is null or a.rounding_mode='') +/ + + +update hrsa_salary_sob_item a set pattern = (select pattern from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.pattern is null or a.pattern='') +/ + + +update hrsa_salary_sob_item a set value_type = (select value_type from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.value_type is null or a.value_type='') +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202303130101.sql b/resource/sqlupgrade/PG/sql202303130101.sql new file mode 100644 index 000000000..843e5994d --- /dev/null +++ b/resource/sqlupgrade/PG/sql202303130101.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 541290 and ( indexdesc is null or indexdesc = '' ) ; +/ +insert into HtmlLabelIndex(id,indexdesc) select 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( indexdesc is not null and indexdesc <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=octet_length(labelname) ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=octet_length(labelname) )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202303130202.sql b/resource/sqlupgrade/PG/sql202303130202.sql new file mode 100644 index 000000000..54a9eae70 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202303130202.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100186; +/ +Delete from LeftMenuConfig where infoid=100186; +/ +call LMConfig_U_ByInfoInsert (2,100118,9); +/ +call LMInfo_Insert (100186,541290,'','',2,100118,9,18); +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202303150403.sql b/resource/sqlupgrade/PG/sql202303150403.sql new file mode 100644 index 000000000..f587ca6b0 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202303150403.sql @@ -0,0 +1,74 @@ +ALTER TABLE hrsa_tax_agent_emp + ADD COLUMN employee_type int NULL ; + + +ALTER TABLE hrsa_salary_archive + ADD COLUMN employee_type int NULL ; + + +ALTER TABLE hrsa_tax_agent_emp_change + ADD COLUMN employee_type int NULL ; + +ALTER TABLE hrsa_salary_acct_emp + ADD COLUMN employee_type int NULL ; + +ALTER TABLE hrsa_salary_send_info ADD COLUMN employee_type int ; + +CREATE TABLE hrsa_external_employee +( + id bigint NOT NULL, + username varchar(255) NULL DEFAULT NULL , + department_name varchar(255) NULL DEFAULT NULL, + department_id bigint NULL DEFAULT NULL , + subcompany_name varchar(255) NULL DEFAULT NULL , + subcompany_id bigint NULL DEFAULT NULL , + jobtitle_name varchar(255) NULL DEFAULT NULL , + jobtitle_id bigint NULL DEFAULT NULL , + companystartdate varchar(255) NULL DEFAULT NULL , + mobile varchar(255) NULL DEFAULT NULL , + status varchar(255) NULL DEFAULT NULL , + workcode varchar(255) NULL DEFAULT NULL , + sex varchar(255) NULL DEFAULT NULL , + email varchar(255) NULL DEFAULT NULL , + telephone varchar(255) NULL DEFAULT NULL , + jobcall varchar(255) NULL DEFAULT NULL , + birthday varchar(255) NULL DEFAULT NULL , + id_no varchar(255) NULL DEFAULT NULL , + bank_card_num varchar(255) NULL DEFAULT NULL , + bank_name varchar(255) NULL DEFAULT NULL , + delete_type int NULL DEFAULT NULL , + creator bigint NULL DEFAULT NULL , + modifier bigint NULL DEFAULT NULL , + create_time timestamp NULL DEFAULT NULL , + update_time timestamp NULL DEFAULT NULL , + tenant_key varchar(255) NULL DEFAULT NULL , + PRIMARY KEY (id) +); + +CREATE TABLE hrsa_salary_sob_ext_range +( + id bigint NOT NULL , + salary_sob_id bigint NOT NULL DEFAULT 0 , + target_type smallint NOT NULL DEFAULT 1 , + target_id bigint NOT NULL DEFAULT 0 , + creator bigint NOT NULL DEFAULT 0 , + create_time timestamp , + update_time timestamp, + delete_type int NOT NULL DEFAULT 0 , + tenant_key varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (id) +); + +CREATE TABLE hrsa_tax_agent_ext_range +( + id bigint NOT NULL , + tax_agent_id bigint NOT NULL DEFAULT 0 , + target_type smallint NOT NULL DEFAULT 1 , + target_id bigint NOT NULL DEFAULT 0 , + creator bigint NOT NULL DEFAULT 0 , + create_time timestamp , + update_time timestamp , + delete_type int NOT NULL DEFAULT 0 , + tenant_key varchar(10) NOT NULL DEFAULT '' , + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202307200603.sql b/resource/sqlupgrade/PG/sql202307200603.sql new file mode 100644 index 000000000..e211c560e --- /dev/null +++ b/resource/sqlupgrade/PG/sql202307200603.sql @@ -0,0 +1,17 @@ +select @current_date:= date_format( now(),'%Y-%m-%d'); +select @current_time:= date_format( now(),'%T'); +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA,SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL,BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER,WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME,onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl,isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', @current_date,@current_time, NULL, NULL, '', '', '0', uuid(), '', '', '', '', '1', 0, 1); + +select @datashowset_id:= max(id)from datashowset; + +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) +VALUES ('salaryExtEmp', '0', 0, @current_date, @current_time, NULL, NULL); + +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) +VALUES (@datashowset_id, '姓名', 'username', '', 1, 1, uuid(), NULL); +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) +VALUES (@datashowset_id, '手机号', 'mobile', '', 0, 2, uuid(), NULL); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) +VALUES (@datashowset_id, '姓名', 'username', '2', '', 1, uuid(), ''); +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) +VALUES (@datashowset_id, '手机号', 'mobile', '2', '', 2, uuid(), ''); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202308080403.sql b/resource/sqlupgrade/PG/sql202308080403.sql new file mode 100644 index 000000000..752565503 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202308080403.sql @@ -0,0 +1,4 @@ +ALTER TABLE hrsa_salary_sob_item +ADD COLUMN rounding_mode int NULL, +ADD COLUMN pattern int NULL, +ADD COLUMN value_type int NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202308080503.sql b/resource/sqlupgrade/PG/sql202308080503.sql new file mode 100644 index 000000000..ded2d46b0 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202308080503.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time TIMESTAMP NOT NULL , + update_time TIMESTAMP NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) ; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202308090203.sql b/resource/sqlupgrade/PG/sql202308090203.sql new file mode 100644 index 000000000..d14a9e4c9 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202308090203.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_social_archives +ALTER employee_id TYPE bigint; +ALTER TABLE hrsa_fund_archives +ALTER employee_id TYPE bigint; +ALTER TABLE hrsa_other_archives +ALTER employee_id TYPE bigint; + +ALTER TABLE hrsa_insurance_base_info ADD employee_type int NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202308170403.sql b/resource/sqlupgrade/PG/sql202308170403.sql new file mode 100644 index 000000000..ce66de13c --- /dev/null +++ b/resource/sqlupgrade/PG/sql202308170403.sql @@ -0,0 +1,8 @@ +update hrsa_salary_sob_item a set rounding_mode = (select rounding_mode from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.rounding_mode is null); +/ + +update hrsa_salary_sob_item a set pattern = (select pattern from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.pattern is null); +/ + +update hrsa_salary_sob_item a set value_type = (select value_type from hrsa_salary_item b where b.delete_type=0 and b.id =a.salary_item_id) where a.delete_type=0 and (a.value_type is null); +/ \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202303130101.sql b/resource/sqlupgrade/SQLServer/sql202303130101.sql new file mode 100644 index 000000000..6f7276eef --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202303130101.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 541290 and ( indexdesc is null or indexdesc = '' ) +GO +insert into HtmlLabelIndex(id,indexdesc) select top 1 541290,'非系统人员管理' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 541290 and ( indexdesc is not null and indexdesc <> '' )) +GO +delete from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 541290 as indexid ,'非系统人员管理' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=7 and ( labelname is not null and labelname <> '' )) +GO +delete from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is null or labelname = '' or labelname like '%[吖-座]%' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 541290 as indexid ,'Non-system personnel management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=8 and ( labelname is not null and labelname <> '' and labelname not like '%[吖-座]%' )) +GO +delete from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 541290 as indexid ,'非系統人員管理' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 541290 and languageid=9 and ( labelname is not null and labelname <> '' )) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202303130202.sql b/resource/sqlupgrade/SQLServer/sql202303130202.sql new file mode 100644 index 000000000..9b7bbe305 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202303130202.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100186 +GO +Delete from LeftMenuConfig where infoid=100186 +GO +EXECUTE LMConfig_U_ByInfoInsert 2,100118,9 +GO +EXECUTE LMInfo_Insert 100186,541290,'','',2,100118,9,18 +GO +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202303150403.sql b/resource/sqlupgrade/SQLServer/sql202303150403.sql new file mode 100644 index 000000000..d7b0d357e --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202303150403.sql @@ -0,0 +1,79 @@ +ALTER TABLE hrsa_tax_agent_emp ADD employee_type int NULL +GO + +ALTER TABLE hrsa_salary_archive ADD employee_type int NULL +GO + +ALTER TABLE hrsa_tax_agent_emp_change ADD employee_type int NULL +GO + +ALTER TABLE hrsa_salary_acct_emp ADD employee_type int NULL +GO + +ALTER TABLE hrsa_salary_send_info ADD employee_type int NULL +GO + + + + +CREATE TABLE hrsa_external_employee +( + id bigint NOT NULL, + username varchar(255) , + department_name varchar(255) , + department_id bigint , + subcompany_name varchar(255) , + subcompany_id bigint , + jobtitle_name varchar(255) , + jobtitle_id bigint , + companystartdate varchar(255) , + mobile varchar(255) , + status varchar(255) , + workcode varchar(255) , + sex varchar(255) , + email varchar(255) , + telephone varchar(255) , + jobcall varchar(255) , + birthday varchar(255) , + id_no varchar(255) , + bank_card_num varchar(255) , + bank_name varchar(255) , + delete_type int , + creator bigint , + modifier bigint , + create_time datetime , + update_time datetime , + tenant_key varchar(255) , + PRIMARY KEY (id) +) +GO + +CREATE TABLE hrsa_salary_sob_ext_range +( + id bigint NOT NULL , + salary_sob_id bigint , + target_type tinyint , + target_id bigint , + creator bigint , + create_time datetime , + update_time datetime , + delete_type int , + tenant_key varchar(10) , + PRIMARY KEY (id) +) +GO + +CREATE TABLE hrsa_tax_agent_ext_range +( + id bigint NOT NULL , + tax_agent_id bigint , + target_type tinyint , + target_id bigint , + creator bigint , + create_time datetime, + update_time datetime, + delete_type int , + tenant_key varchar(10) , + PRIMARY KEY (id) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202307200603.sql b/resource/sqlupgrade/SQLServer/sql202307200603.sql new file mode 100644 index 000000000..4739ad629 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202307200603.sql @@ -0,0 +1,17 @@ +declare @datashowset_id int +declare @current_date varchar(100) +declare @current_time varchar(100) + +set @current_date = (select CONVERT(varchar(100), GETDATE(), 23)) +set @current_time = (select CONVERT(varchar(100), GETDATE(), 24)) + +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA, SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL, BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER, WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME, onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl, isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1', 'id', '', '', '', '', '', '', 2, '非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', @current_date, @current_time, NULL, NULL, '', '', '0',newid(), '', '', '', '', '1', 0, 1) +set @datashowset_id = (select max(id) from datashowset) +INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('salaryExtEmp', '0', 0, @current_date, @current_time, NULL, NULL) + +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (@datashowset_id, '姓名', 'username', '', 1, 1, newid(), NULL) +INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES (@datashowset_id, '手机号', 'mobile', '', 0, 2, newid(), NULL) +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (@datashowset_id, '姓名', 'username', '2', '', 1, newid(), '') +INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES (@datashowset_id, '手机号', 'mobile', '2', '', 2, newid(), '') + +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202308080403.sql b/resource/sqlupgrade/SQLServer/sql202308080403.sql new file mode 100644 index 000000000..c8a9e79bf --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202308080403.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_salary_sob_item +ADD rounding_mode int NULL, +pattern int NULL, +value_type int NULL +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202308080503.sql b/resource/sqlupgrade/SQLServer/sql202308080503.sql new file mode 100644 index 000000000..063d85a76 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202308080503.sql @@ -0,0 +1,13 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202308090203.sql b/resource/sqlupgrade/SQLServer/sql202308090203.sql new file mode 100644 index 000000000..8c03dcf48 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202308090203.sql @@ -0,0 +1,13 @@ +ALTER TABLE hrsa_social_archives +ALTER COLUMN employee_id bigint +GO +ALTER TABLE hrsa_fund_archives +ALTER COLUMN employee_id bigint +GO +ALTER TABLE hrsa_other_archives +ALTER COLUMN employee_id bigint +GO + + +ALTER TABLE hrsa_insurance_base_info ADD employee_type int NULL +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202308170403.sql b/resource/sqlupgrade/SQLServer/sql202308170403.sql new file mode 100644 index 000000000..9ee71e7d2 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202308170403.sql @@ -0,0 +1,8 @@ +update a set a.rounding_mode = b.rounding_mode from hrsa_salary_sob_item a, hrsa_salary_item b where a.salary_item_id=b.id and a.delete_type=0 and (a.rounding_mode is null or a.rounding_mode='') +GO + +update a set a.pattern = b.pattern from hrsa_salary_sob_item a, hrsa_salary_item b where a.salary_item_id=b.id and a.delete_type=0 and (a.pattern is null or a.pattern='') +GO + +update a set a.value_type = b.value_type from hrsa_salary_sob_item a, hrsa_salary_item b where a.salary_item_id=b.id and a.delete_type=0 and (a.value_type is null or a.value_type='') +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202308090203.sql b/resource/sqlupgrade/ST/sql202308090203.sql new file mode 100644 index 000000000..ee8394990 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202308090203.sql @@ -0,0 +1,48 @@ +ALTER Table hrsa_social_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_social_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_social_archives drop column employee_id; +/ + +alter table hrsa_social_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_social_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_fund_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_fund_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_fund_archives drop column employee_id; +/ + +alter table hrsa_fund_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_fund_archives MODIFY (employee_id not null); +/ + +ALTER Table hrsa_other_archives Add employee_id2 NUMBER(38,0); +/ + +update hrsa_other_archives a SET a.employee_id2=a.employee_id; +/ + +alter table hrsa_other_archives drop column employee_id; +/ + +alter table hrsa_other_archives rename column employee_id2 to employee_id; +/ + +alter table hrsa_other_archives MODIFY (employee_id not null); +/ + +ALTER TABLE hrsa_insurance_base_info ADD employee_type number; +/ + diff --git a/src/com/engine/salary/action/InitSalaryAction.java b/src/com/engine/salary/action/InitSalaryAction.java index 25e0669c8..4b2b0472b 100644 --- a/src/com/engine/salary/action/InitSalaryAction.java +++ b/src/com/engine/salary/action/InitSalaryAction.java @@ -77,7 +77,7 @@ public class InitSalaryAction implements Action { List errorNotice = (List) map.get("errorNotice"); if (CollectionUtils.isNotEmpty(errorNotice)) { - log.error("璋冭柂瀛樺湪寮傚父 requestId:{} ,鍙傛暟:{}, map:{}", requestInfo.getRequestid(), build, map); + log.error("瀹氳柂瀛樺湪寮傚父 requestId:{} ,鍙傛暟:{}, map:{}", requestInfo.getRequestid(), build, map); List> excelComments = (List>) map.get("errorNotice"); StringBuilder message = new StringBuilder(""); for (Map comments : excelComments) { @@ -87,7 +87,7 @@ public class InitSalaryAction implements Action { return FAILURE_AND_CONTINUE; } } catch (Exception e) { - log.error("璋冭柂寮傚父", e); + log.error("瀹氳柂寮傚父", e); requestInfo.getRequestManager().setMessage(e.getMessage()); return FAILURE_AND_CONTINUE; } diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 51da1aa57..9c89df464 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -662,11 +662,10 @@ public class SIArchivesBiz { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542533, "鍏朵粬绂忓埄鏈鍚庣即绾虫椂闂存牸寮忛敊璇,姝g‘鏍煎紡涓篩YYY-MM鎴栬厃yyy-MM-dd")); } -// List oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(param.getEmployeeId())); - List oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() - .employeeId(param.getEmployeeId()) - .paymentOrganization(param.getPaymentOrganization()) - .build()); + List otherIds = new ArrayList(); + otherIds.add(param.getId()); + List oldOtherInfoList = otherSchemeMapper.getOtherById(otherIds); + if (oldOtherInfoList.size() == 1) { InsuranceArchivesOtherSchemePO oldOtherInfo = oldOtherInfoList.get(0); InsuranceArchivesOtherSchemePO updateOtherInfo = @@ -694,7 +693,48 @@ public class SIArchivesBiz { otherSchemeMapper.updateById(updateOtherInfo); sqlSession.commit(); } else { - throw new SalaryRunTimeException("璇ュ憳宸ュ凡鍏宠仈鐨勫叾浠栫鍒╂。妗堜笉瀛樺湪鎴栧瓨鍦ㄥ鏉★紝璇峰鐞嗗悗鍐嶉噸澶嶅綋鍓嶆搷浣滐紒"); + otherSchemeMapper.deleteByEmployeeIdAndPayOrg(InsuranceArchivesOtherSchemePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + //鏂板缓绀句繚妗f锛屽苟鍏宠仈涓昏〃 + InsuranceArchivesOtherSchemePO insertOtherInfo = InsuranceArchivesOtherSchemePO.builder() + .otherSchemeId(param.getOtherSchemeId()) + .otherStartTime(StringUtils.isNotBlank(param.getOtherStartTime()) ? param.getOtherStartTime() : null) + .underTake(param.getUnderTake()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .welfareType(paramReq.getWelfareType().getValue()) + .otherEndTime(StringUtils.isNotBlank(param.getOtherEndTime()) ? param.getOtherEndTime() : null) + .employeeId(param.getEmployeeId()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()) + .nonPayment(param.getNonPayment()) + .creator(employeeId) + .paymentOrganization(param.getPaymentOrganization()) + .otherPaymentBaseString(paramReq.getPaymentForm()) + .build(); + //鏍¢獙绂忓埄鍩烘暟鏄惁绗﹀悎涓婁笅闄愯姹傦紝 + if (!checkWelBaseLimit(insertOtherInfo.getOtherSchemeId(),insertOtherInfo.getOtherPaymentBaseString())) { + throw new SalaryRunTimeException("鍏朵粬绂忓埄鏄庣粏涓殑鍩烘暟鏇存柊鍐呭涓嶇鍚堢浉鍏冲熀鏁颁笂涓嬮檺瑕佹眰锛岃妫鏌ュ悗閲嶈瘯锛"); + } + encryptUtil.encrypt(insertOtherInfo, InsuranceArchivesOtherSchemePO.class); + otherSchemeMapper.insert(insertOtherInfo); + sqlSession.commit(); + + InsuranceArchivesBaseInfoPO baseInfoPO = getInsuranceBaseInfoMapper().getOneByEmployeeIdAndPayOrg(param.getPaymentOrganization(), param.getEmployeeId()); + if(baseInfoPO != null) { + List otherInfos = otherSchemeMapper.getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + baseInfoPO.setOtherArchivesId(otherInfos.get(0).getId()); + getInsuranceBaseInfoMapper().updateById(baseInfoPO); + } else { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "妗f涓嶅瓨鍦紒")); + } + + } } finally { @@ -720,11 +760,10 @@ public class SIArchivesBiz { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542531, "鍏Н閲戞渶鍚庣即绾虫椂闂存牸寮忛敊璇,姝g‘鏍煎紡涓篩YYY-MM鎴栬厃yyy-MM-dd")); } -// List oldFundInfoList = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(param.getEmployeeId())); - List oldFundInfoList = fundSchemeMapper.getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() - .employeeId(param.getEmployeeId()) - .paymentOrganization(param.getPaymentOrganization()) - .build()); + List fundIds = new ArrayList(); + fundIds.add(param.getId()); + List oldFundInfoList = fundSchemeMapper.getFundById(fundIds); + if (oldFundInfoList.size() == 1) { InsuranceArchivesFundSchemePO oldFundInfo = oldFundInfoList.get(0); InsuranceArchivesFundSchemePO updateFundInfo = InsuranceArchivesFundSchemePO.builder() @@ -754,7 +793,49 @@ public class SIArchivesBiz { sqlSession.commit(); } else { - throw new SalaryRunTimeException("璇ュ憳宸ュ凡鍏宠仈鐨勫叕绉噾妗f涓嶅瓨鍦ㄦ垨瀛樺湪澶氭潯锛岃澶勭悊鍚庡啀閲嶅褰撳墠鎿嶄綔锛"); + fundSchemeMapper.deleteByEmployeeIdAndPayOrg(InsuranceArchivesFundSchemePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + //鏂板缓绀句繚妗f锛屽苟鍏宠仈涓昏〃 + InsuranceArchivesFundSchemePO insertFundInfo = InsuranceArchivesFundSchemePO.builder() + .fundSchemeId(param.getFundSchemeId()) + .fundAccount(param.getFundAccount()) + .fundEndTime(StringUtils.isNotBlank(param.getFundEndTime()) ? param.getFundEndTime() : null) + .fundStartTime(StringUtils.isNotBlank(param.getFundStartTime()) ? param.getFundStartTime() : null) + .fundPaymentBaseString(paramReq.getPaymentForm()) + .supplementFundAccount(param.getSupplementFundAccount()) + .creator(employeeId) + .nonPayment(param.getNonPayment()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .underTake(param.getUnderTake()) + .paymentOrganization(param.getPaymentOrganization()) + .createTime(new Date()) + .updateTime(new Date()) + .welfareType(paramReq.getWelfareType().getValue()) + .employeeId(param.getEmployeeId()) + .build(); + //鏍¢獙绂忓埄鍩烘暟鏄惁绗﹀悎涓婁笅闄愯姹傦紝 + if (!checkWelBaseLimit(insertFundInfo.getFundSchemeId(),insertFundInfo.getFundPaymentBaseString())) { + throw new SalaryRunTimeException("鍏Н閲戠鍒╂槑缁嗕腑鐨勫熀鏁版洿鏂板唴瀹逛笉绗﹀悎鐩稿叧鍩烘暟涓婁笅闄愯姹傦紝璇锋鏌ュ悗閲嶈瘯锛"); + } + encryptUtil.encrypt(insertFundInfo, InsuranceArchivesFundSchemePO.class); + fundSchemeMapper.insert(insertFundInfo); + sqlSession.commit(); + + InsuranceArchivesBaseInfoPO baseInfoPO = getInsuranceBaseInfoMapper().getOneByEmployeeIdAndPayOrg(param.getPaymentOrganization(), param.getEmployeeId()); + if(baseInfoPO != null) { + List fundInfos = fundSchemeMapper.getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + baseInfoPO.setFundArchivesId(fundInfos.get(0).getId()); + getInsuranceBaseInfoMapper().updateById(baseInfoPO); + } else { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "妗f涓嶅瓨鍦紒")); + } + } } finally { @@ -787,11 +868,9 @@ public class SIArchivesBiz { // socialSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId())); //鏌ヨ宸叉湁鏁版嵁 -// List oldSocialInfoList = socialSchemeMapper.getSocialByEmployeeId(Collections.singletonList(param.getEmployeeId())); - List oldSocialInfoList = socialSchemeMapper.getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() - .employeeId(param.getEmployeeId()) - .paymentOrganization(param.getPaymentOrganization()) - .build()); + List socialIds = new ArrayList(); + socialIds.add(param.getId()); + List oldSocialInfoList = socialSchemeMapper.getSocialById(socialIds); //缁勮鏂版暟鎹 if (oldSocialInfoList.size() == 1) { InsuranceArchivesSocialSchemePO oldSocialInfo = oldSocialInfoList.get(0); @@ -823,7 +902,49 @@ public class SIArchivesBiz { sqlSession.commit(); } else { - throw new SalaryRunTimeException("璇ュ憳宸ュ凡鍏宠仈鐨勭ぞ淇濇。妗堜笉瀛樺湪鎴栧瓨鍦ㄥ鏉★紝璇峰鐞嗗悗鍐嶉噸澶嶅綋鍓嶆搷浣滐紒"); + socialSchemeMapper.deleteByEmployeeIdAndPayOrg(InsuranceArchivesSocialSchemePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + //鏂板缓绀句繚妗f锛屽苟鍏宠仈涓昏〃 + InsuranceArchivesSocialSchemePO insertSocialInfo = + InsuranceArchivesSocialSchemePO.builder() + .welfareType(paramReq.getWelfareType().getValue()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .socialPaymentBaseString(paramReq.getPaymentForm()) + .socialSchemeId(param.getSocialSchemeId()) + .socialEndTime(StringUtils.isNotBlank(param.getSocialEndTime()) ? param.getSocialEndTime() : null) + .socialStartTime(StringUtils.isNotBlank(param.getSocialStartTime()) ? param.getSocialStartTime() : null) + .creator(employeeId) + .nonPayment(param.getNonPayment()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeId(param.getEmployeeId()) + .createTime(new Date()) + .updateTime(new Date()) + .underTake(param.getUnderTake()) + .socialAccount(param.getSchemeAccount()) + .paymentOrganization(param.getPaymentOrganization()) + .build(); + //鏍¢獙绂忓埄鍩烘暟鏄惁绗﹀悎涓婁笅闄愯姹 + if (!checkWelBaseLimit(insertSocialInfo.getSocialSchemeId(),insertSocialInfo.getSocialPaymentBaseString())) { + throw new SalaryRunTimeException("绀句繚绂忓埄鏄庣粏涓殑鍩烘暟鏇存柊鍐呭涓嶇鍚堢浉鍏冲熀鏁颁笂涓嬮檺瑕佹眰锛岃妫鏌ュ悗閲嶈瘯锛"); + } + encryptUtil.encrypt(insertSocialInfo, InsuranceArchivesSocialSchemePO.class); + socialSchemeMapper.insert(insertSocialInfo); + sqlSession.commit(); + + InsuranceArchivesBaseInfoPO baseInfoPO = getInsuranceBaseInfoMapper().getOneByEmployeeIdAndPayOrg(param.getPaymentOrganization(), param.getEmployeeId()); + if(baseInfoPO != null) { + List socialInfos = socialSchemeMapper.getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build()); + baseInfoPO.setSocialArchivesId(socialInfos.get(0).getId()); + getInsuranceBaseInfoMapper().updateById(baseInfoPO); + } else { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "妗f涓嶅瓨鍦紒")); + } + } } finally { @@ -959,6 +1080,8 @@ public class SIArchivesBiz { request.setTaxAgentId(param.getTaxAgentId()); + request.setExtWelArchiveList(param.isExtWelArchiveList()); + apidatas = listPageEmployeePOS(request, operateId); return apidatas; @@ -994,7 +1117,11 @@ public class SIArchivesBiz { Collection taxAgentIds = param.getTaxAgentIds(); log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁寮濮"); sw.start("鑾峰彇绂忓埄妗f鍒楄〃鏁版嵁"); - page = socialSchemeMapper.queryEmployeeList(param); + if (param.isExtWelArchiveList()) { + page = socialSchemeMapper.queryExtEmployeeList(param); + } else { + page = socialSchemeMapper.queryEmployeeList(param); + } sw.stop(); log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁瀹屾垚锛"); page = page.stream().filter(f -> @@ -1010,7 +1137,11 @@ public class SIArchivesBiz { } else { log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁寮濮"); sw.start("鑾峰彇妗f鍒楄〃鏁版嵁"); - page = socialSchemeMapper.queryEmployeeList(param); + if (param.isExtWelArchiveList()) { + page = socialSchemeMapper.queryExtEmployeeList(param); + } else { + page = socialSchemeMapper.queryEmployeeList(param); + } sw.stop(); log.info("浠庢暟鎹簱鑾峰彇妗f鍒楄〃鏁版嵁瀹屾垚锛"); pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), @@ -1072,13 +1203,14 @@ public class SIArchivesBiz { nameColumn.setFixed("left"); list.add(nameColumn); list.add(new WeaTableColumn("150px", "涓◣鎵g即涔夊姟浜", "paymentOrganizationName")); + list.add(new WeaTableColumn("150px", "鍒嗛儴", "subcompanyName")); list.add(new WeaTableColumn("150px", "閮ㄩ棬", "departmentName")); list.add(new WeaTableColumn("150px", "鎵嬫満鍙", "mobile")); list.add(new WeaTableColumn("150px", "鍛樺伐鐘舵", "status")); list.add(new WeaTableColumn("150px", "宸ュ彿", "jobNum")); list.add(new WeaTableColumn("150px", "鍏ヨ亴鏃ユ湡", "companystartdate")); - list.add(new WeaTableColumn("150px", "鍚堝悓鍒版湡鏃ユ湡", "dismissdate")); +// list.add(new WeaTableColumn("150px", "鍚堝悓鍒版湡鏃ユ湡", "dismissdate")); list.add(new WeaTableColumn("150px", "绀句繚鏂规鍚嶇О", "socialName")); titleMap.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> list.add(new WeaTableColumn("150px", v, k))); @@ -1265,6 +1397,7 @@ public class SIArchivesBiz { map.put("paymentOrganizationName", longTaxAgentPOMap.get(item.getPaymentOrganization()) != null ? longTaxAgentPOMap.get(item.getPaymentOrganization()).getName() : ""); map.put("employeeId", item.getEmployeeId()); map.put("departmentName", item.getDepartmentName()); + map.put("subcompanyName", item.getSubcompanyName()); map.put("departmentId", item.getDepartmentId()); map.put("jobNum", item.getJobNum()); map.put("companystartdate", item.getCompanystartdate()); diff --git a/src/com/engine/salary/biz/SalarySobItemHideBiz.java b/src/com/engine/salary/biz/SalarySobItemHideBiz.java index af3cb0142..5aa0f5a77 100644 --- a/src/com/engine/salary/biz/SalarySobItemHideBiz.java +++ b/src/com/engine/salary/biz/SalarySobItemHideBiz.java @@ -10,11 +10,11 @@ import java.util.List; public class SalarySobItemHideBiz { - public List listSome(SalarySobItemHidePO salarySobPO) { + public List listHideItemIds(SalarySobItemHidePO salarySobPO) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class); - return mapper.getById(salarySobPO); + return mapper.listHideItemIds(salarySobPO); } finally { sqlSession.close(); } @@ -53,4 +53,14 @@ public class SalarySobItemHideBiz { sqlSession.close(); } } + + public List listSome(SalarySobItemHidePO po) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class); + return mapper.listSome(po); + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/entity/extemp/param/ExtEmpImportParam.java b/src/com/engine/salary/entity/extemp/param/ExtEmpImportParam.java new file mode 100644 index 000000000..f30f4f758 --- /dev/null +++ b/src/com/engine/salary/entity/extemp/param/ExtEmpImportParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.extemp.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: sy + * @Description: 闈炵郴缁熶汉鍛樺鍏ュ弬鏁 + * @Date: 2023/7/26 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ExtEmpImportParam { + //涓婁紶鏂囦欢id + @DataCheck(require = true,message = "imageId涓虹┖") + String imageId; +} diff --git a/src/com/engine/salary/entity/hrm/DeptInfo.java b/src/com/engine/salary/entity/hrm/DeptInfo.java index 0a6e9d0c8..12f2f61f9 100644 --- a/src/com/engine/salary/entity/hrm/DeptInfo.java +++ b/src/com/engine/salary/entity/hrm/DeptInfo.java @@ -25,4 +25,9 @@ public class DeptInfo { * 鍚嶇О */ private String name; + + /** + * 鎵灞炲垎閮╥d + */ + private Long subcompanyid1; } diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java new file mode 100644 index 000000000..ce1deaf67 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java @@ -0,0 +1,30 @@ +package com.engine.salary.entity.salaryBill.bo; + +import com.engine.salary.entity.salaryBill.dto.SalaryBillItemNameDTO; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameBO + * @date 2023/07/19 9:19 + * @description 宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕绉 + */ +public class SalaryBillItemNameBO { + + public static List convert2ListDTO(List SalaryBillItemNamePOList){ + if (CollectionUtils.isEmpty(SalaryBillItemNamePOList)) { + return Collections.emptyList(); + } + return SalaryBillItemNamePOList.stream() + .map(po -> SalaryBillItemNameDTO.builder() + .salaryItemId(po.getSalaryItemId()) + .salaryItemShowName(po.getSalaryItemShowName()) + .build()) + .collect(Collectors.toList()); + } +} diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java index a12f0e81f..050807ff0 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java @@ -120,6 +120,8 @@ public class SalaryTemplateBO { .id(String.valueOf(i.getSalaryItemId())) .salaryItemId(String.valueOf(i.getSalaryItemId())) .name(i.getName()) + .salaryItemShowName(i.getName()) + .originName(i.getName()) .sortedIndex(i.getSortedIndex()) .build()); }); diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java new file mode 100644 index 000000000..4deae25f5 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java @@ -0,0 +1,30 @@ +package com.engine.salary.entity.salaryBill.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameDTO + * @date 2023/07/19 9:21 + * @description 宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕绉 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNameDTO { + + /** + * 钖祫椤圭洰id + */ + private Long salaryItemId; + + + /** + * 宸ヨ祫鍗曞睍绀哄悕绉 + */ + private String salaryItemShowName; +} diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java index 5a19f39e9..0e90569db 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Map; /** * @author Harryxzy @@ -26,4 +27,7 @@ public class SalaryTemplateReplenishFormDTO { // 钖祫椤圭洰璁剧疆") private List replenishSalaryTemplateSalaryItemSet; + // 宸ヨ祫鍗曢」鐩悕绉拌缃 + private Map salaryBillItemNameSet; + } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java index bedf72566..858db75a1 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java @@ -26,9 +26,15 @@ public class SalaryTemplateSalaryItemListDTO { // 钖祫椤圭洰鍊") private String salaryItemValue; -// 钖祫椤圭洰鍚嶇О") + // 妯℃澘灞曠ず鍚嶇О salaryItemShowName+锛坥riginName锛 private String name; + // 钖祫椤圭洰淇敼鍚庡睍绀哄悕绉 + private String salaryItemShowName; + + // 钖祫椤圭洰鍚嶇О鍘熷鍊 + private String originName; + // 椤哄簭") private Integer sortedIndex; } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java index 364cb8a63..43e52905b 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java @@ -29,4 +29,10 @@ public class SalaryTemplateShowFormDTO { // 钖祫椤圭洰璁剧疆") private List salaryTemplateSalaryItemSet; + + // 琛ュ彂宸ヨ祫钖祫椤圭洰璁剧疆") + private List replenishSalaryTemplateSalaryItemSet; + + // 宸ヨ祫鍗曢」鐩悕绉拌缃 + private Map salaryBillItemNameSet; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java new file mode 100644 index 000000000..9674df028 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java @@ -0,0 +1,46 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.*; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameSaveParam + * @date 2023/07/19 10:20 + * @description 璁剧疆宸ヨ祫鍗曢」鐩睍绀哄悕鍙傛暟 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNameSaveParam { + /** + * 宸ヨ祫鍗曟ā鏉縤d + */ + private Long salaryTemplateId; + + /** + * 宸ヨ祫鍗曠被鍨嬨0锛氭甯稿伐璧勫崟銆1锛氳ˉ鍙戝伐璧勫崟 + */ + private Integer salaryBillType; + + private List itemShowNameSetting; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class itemShowNameSetting { + /** + * 钖祫椤圭洰id + */ + private Long salaryItemId; + + /** + * 宸ヨ祫鍗曞睍绀哄悕绉 + */ + private String salaryItemShowName; + } + +} diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java index 8bf974208..36d8ab498 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java @@ -23,4 +23,9 @@ public class SalaryBillSalaryGroupQueryParam extends BaseQueryParam { * 鍓嶇宸叉湁鐨勫垎缁刬d */ private List existSalaryGroupIds; + + /** + * 宸ヨ祫鍗曟ā鏉縤d + */ + private Long salaryTemplateId; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java index ee0be17f7..26c819771 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java @@ -19,4 +19,6 @@ public class SalaryBillSalaryItemQueryParam extends BaseQueryParam { private Boolean isReplenish; private List existSalaryItemIds; + + private Long salaryTemplateId; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java index ff8af0607..bbf16949e 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java @@ -104,6 +104,8 @@ public class SalaryTemplateSaveParam { */ private String feedbackUrl; + List salaryBillItemNameSetting; + public static void checkParam(SalaryTemplateSaveParam saveParam) { if (saveParam.getSalarySobId() == null) { throw new SalaryRunTimeException("钖祫璐﹀琛ㄧ殑涓婚敭id蹇呬紶;"); diff --git a/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java new file mode 100644 index 000000000..5dcf872d6 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java @@ -0,0 +1,71 @@ +package com.engine.salary.entity.salaryBill.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemName + * @date 2023/07/18 15:55 + * @description 宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕绉 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNamePO { + private Long id; + + /** + * 钖祫椤圭洰id + */ + private Long salaryItemId; + + /** + * 钖祫椤圭洰灞曠ず鍚嶇О + */ + private String salaryItemShowName; + + /** + * 宸ヨ祫鍗曟ā鏉縤d + */ + private Long salaryTemplateId; + + /** + * 宸ヨ祫鍗曠被鍨嬨0锛氭甯稿伐璧勫崟銆1锛氳ˉ鍙戝伐璧勫崟 + */ + private Integer salaryBillType; + + /** + * 鍒涘缓鏃堕棿 + */ + private Date createTime; + + /** + * 鏇存柊鏃堕棿 + */ + private Date updateTime; + + /** + * 鍒涘缓浜 + */ + private Long creator; + + /** + * 鏄惁宸插垹闄ゃ0锛氭湭鍒犻櫎銆1锛氬凡鍒犻櫎 + */ + private Integer deleteType; + + /** + * 绉熸埛ID + */ + private String tenantKey; + + //涓婚敭id闆嗗悎 + private Collection ids; +} diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 6c6139898..5f3b9c700 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -4,11 +4,13 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; +import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.enums.SalaryRoundingModeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; @@ -32,9 +34,13 @@ public class SalaryAcctFormulaBO { * @param salaryItem * @param salarySobBackItems 钖祫璐﹀鍥炵畻椤圭洰List * @param salarySobBackItemMap 钖祫璐﹀鍥炵畻椤圭洰Map + * @param salaryItemIdKeySalarySobItemPOMap 钖祫璐﹀涓嬭柂璧勯」鐩甅ap * @return */ - public static String roundResultValue(String value, SalaryItemPO salaryItem, List salarySobBackItems, Map salarySobBackItemMap) { + public static String roundResultValue(String value, SalaryItemPO salaryItem, + List salarySobBackItems, + Map salarySobBackItemMap, + Map salaryItemIdKeySalarySobItemPOMap) { // 鍊间负绌猴紝涓嶉渶瑕佸洓鑸嶄簲鍏 if (StringUtils.isEmpty(value) || salaryItem == null) { return StringUtils.EMPTY; @@ -44,10 +50,13 @@ public class SalaryAcctFormulaBO { if (dataTypeEnum == SalaryDataTypeEnum.STRING) { return value; } - Integer salaryItemRoundingMode = salaryItem.getRoundingMode(); - Integer salaryItemPattern = salaryItem.getPattern(); - // 钖祫椤圭洰鏄洖绠楅」鐩 - if(salarySobBackItems != null && salarySobBackItems.size() > 0 && salarySobBackItemMap.containsKey(salaryItem.getId())){ + // 鑾峰彇钖祫璐﹀鍓湰涓殑鑸嶅叆瑙勫垯鍜屼繚鐣欎綅鏁帮紝鎷夸笉鍒板啀鍘昏柂璧勯」鐩腑鍙 + Integer salaryItemRoundingMode = Optional.ofNullable(salaryItemIdKeySalarySobItemPOMap.get(salaryItem.getId())).map(SalarySobItemPO::getRoundingMode) + .orElse(salaryItem.getRoundingMode()); + Integer salaryItemPattern = Optional.ofNullable(salaryItemIdKeySalarySobItemPOMap.get(salaryItem.getId())).map(SalarySobItemPO::getPattern) + .orElse(salaryItem.getPattern()); + if(CollectionUtils.isNotEmpty(salarySobBackItems) && salarySobBackItemMap.containsKey(salaryItem.getId())){ + // 钖祫椤圭洰鏄洖绠楅」鐩 salaryItemRoundingMode = salarySobBackItemMap.get(salaryItem.getId()).getRoundingMode(); salaryItemPattern = salarySobBackItemMap.get(salaryItem.getId()).getPattern(); } diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java index 3f067cb1c..5f9d256f8 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAccEmployeeListDTO.java @@ -66,6 +66,6 @@ public class SalaryAccEmployeeListDTO { private String hireDate; //绂昏亴鏃ユ湡 - @TableTitle(title = "绂昏亴鏃ユ湡", dataIndex = "dismissDate", key = "dismissDate") +// @TableTitle(title = "绂昏亴鏃ユ湡", dataIndex = "dismissDate", key = "dismissDate") private String dismissDate; } diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index 555c2a1cb..552856821 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -82,7 +82,7 @@ public class SalaryArchiveBO { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "璧峰鍙戣柂鏃ユ湡"), "payStartDate")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "鏈鍚庡彂钖棩鏈"), "payEndDate")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "鍏ヨ亴鏃ユ湡"), "companystartdate").setDisplay(WeaBoolAttr.FALSE)); - columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "绂昏亴鏃ユ湡"), "dismissdate").setDisplay(WeaBoolAttr.FALSE)); +// columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "绂昏亴鏃ユ湡"), "dismissdate").setDisplay(WeaBoolAttr.FALSE)); for (SalaryItemPO salaryItem : salaryItems) { columns.add(new WeaTableColumn("100px", salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)); } diff --git a/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java b/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java index 90e09a558..d8304094e 100644 --- a/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java +++ b/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java @@ -3,9 +3,11 @@ package com.engine.salary.entity.salaryformula.bo; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -18,24 +20,36 @@ import java.util.stream.Collectors; **/ public class SalaryFormulaBO { - public static List convert2DTO(List expressFormulas) { + public static List convert2DTO(List expressFormulas, Map returnTypeMap) { if (CollectionUtils.isEmpty(expressFormulas)) { return Collections.emptyList(); } return expressFormulas.stream() - .map(e -> ExpressFormulaDTO.builder() - .id(e.getId()) - .name(e.getName()) - .formula(e.getFormula()) - .description(e.getDescription()) - .extendParam(e.getExtendParam()) - .module(e.getModule()) - .parameters(e.getParameters()) - .referenceType(e.getReferenceType()) - .returnType(e.getReturnType()) - .useFor(e.getUseFor()) - .validateType(e.getValidateType()) - .build()) + .map(e -> { + String referenceType = returnTypeMap.getOrDefault(e.getId(), ""); + ExpressFormulaDTO build = ExpressFormulaDTO.builder() + .id(e.getId()) + .name(e.getName()) + .formula(e.getFormula()) + .description(e.getDescription()) + .extendParam(e.getExtendParam()) + .module(e.getModule()) + .parameters(e.getParameters()) + .referenceType(e.getReferenceType()) + .returnType(e.getReturnType()) + .useFor(e.getUseFor()) + .validateType(e.getValidateType()) + .build(); + if (StringUtils.isNotBlank(referenceType) && !StringUtils.equals(e.getReferenceType(), referenceType)) { + // 鏇存崲浜嗗彇鍊兼柟寮忥紝杩斿洖绌哄璞¤繘琛屽墠绔鐞 + build.setExtendParam(""); + build.setFormula(""); + build.setParameters(Collections.emptyList()); + build.setReferenceType(referenceType); + return build; + } + return build; + }) .collect(Collectors.toList()); } } diff --git a/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaDetailQueryParam.java b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaDetailQueryParam.java new file mode 100644 index 000000000..aff64ddaa --- /dev/null +++ b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaDetailQueryParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.salaryformula.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @ClassName SalaryFormulaDetailQueryParam + * @date 2023/07/25 10:17 + * @description + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryFormulaDetailQueryParam { + + // 鍏紡id + private Long formulaId; + + // 鍙栧肩被鍨 sql/formula + private String returnType; + +} diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java index b750c2c27..f65c9f924 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java @@ -147,18 +147,23 @@ public class SalaryItemBO { .useInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) .useDefault(salaryItemPO.getUseDefault()) .hideDefault(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault()) - .roundingMode(Optional.ofNullable(salaryRoundingModeEnum) + .roundingMode(salaryItemPO.getRoundingMode()) + .roundingModeShowValue(Optional.ofNullable(salaryRoundingModeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) .pattern(salaryItemPO.getPattern()) - .valueType(Optional.ofNullable(salaryValueTypeEnum) + .valueType(salaryItemPO.getValueType()) + .valueTypeShowValue(Optional.ofNullable(salaryValueTypeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) - .dataType(Optional.ofNullable(salaryDataTypeEnum) + .dataType(salaryItemPO.getDataType()) + .dataTypeShowValue(Optional.ofNullable(salaryDataTypeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) .formulaId(salaryItemPO.getFormulaId()) .formulaContent(formulaMap.getOrDefault(salaryItemPO.getFormulaId(),"")) + .originFormulaContent(salaryValueTypeEnum.getValue() == SalaryValueTypeEnum.FORMULA.getValue() ? formulaMap.getOrDefault(salaryItemPO.getFormulaId(),"") : "") + .originSqlContent(salaryValueTypeEnum.getValue() == SalaryValueTypeEnum.SQL.getValue() ? formulaMap.getOrDefault(salaryItemPO.getFormulaId(),"") : "") .taxDeclarationColumn(buildTaxDeclarationColumn(salaryItemPO.getCode())) .canDelete(true) .canEdit(openFormulaForcedEditing ||Objects.equals(salaryItemPO.getCanEdit(), NumberUtils.INTEGER_ONE)) diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java index c00b85844..5101bf2e4 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java @@ -75,6 +75,11 @@ public class SalaryItemFormDTO { //鍏紡鍐呭") private String formulaContent; + // 鐢ㄤ簬鍓嶇灞曠ず 鍏紡鍘熷鍐呭 + private String originFormulaContent; + // 鐢ㄤ簬鍓嶇灞曠ず 鍘熷sql + private String originSqlContent; + //澶囨敞") private String description; diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java index ae0ecf30f..10aaa12bc 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java @@ -55,9 +55,12 @@ public class SalaryItemSobListDTO { private Integer hideDefault; //杩涗綅瑙勫垯 - @SalaryTableColumn(text = "杩涗綅瑙勫垯", width = "10%", column = "roundingMode",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") - @TableTitle(title = "杩涗綅瑙勫垯",dataIndex = "roundingMode",key = "roundingMode") - private String roundingMode; + @SalaryTableColumn(text = "杩涗綅瑙勫垯", width = "10%", column = "roundingModeShowValue",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") + @TableTitle(title = "杩涗綅瑙勫垯",dataIndex = "roundingModeShowValue",key = "roundingModeShowValue") + private String roundingModeShowValue; + + private Integer roundingMode; + //淇濈暀灏忔暟浣 @SalaryTableColumn(text = "淇濈暀灏忔暟浣", width = "10%", column = "pattern") @@ -65,15 +68,19 @@ public class SalaryItemSobListDTO { private Integer pattern; //鍙栧兼柟寮 - @SalaryTableColumn(text = "鍙栧兼柟寮", width = "10%", column = "valueType",transmethod = "com.engine.salary.transmethod.TransMethod.datasource") - @TableTitle(title = "鍙栧兼柟寮",dataIndex = "valueType",key = "valueType") - private String valueType; + @SalaryTableColumn(text = "鍙栧兼柟寮", width = "10%", column = "valueTypeShowValue",transmethod = "com.engine.salary.transmethod.TransMethod.datasource") + @TableTitle(title = "鍙栧兼柟寮",dataIndex = "valueTypeShowValue",key = "valueTypeShowValue") + private String valueTypeShowValue; + + private Integer valueType; /** * @see SalaryDataTypeEnum */ - @SalaryTableColumn(text = "瀛楁绫诲瀷", width = "10%", column = "dataType",transmethod = "com.engine.salary.transmethod.TransMethod.dataType") - @TableTitle(title = "瀛楁绫诲瀷",dataIndex = "dataType",key = "dataType") + @SalaryTableColumn(text = "瀛楁绫诲瀷", width = "10%", column = "dataTypeShowValue",transmethod = "com.engine.salary.transmethod.TransMethod.dataType") + @TableTitle(title = "瀛楁绫诲瀷",dataIndex = "dataTypeShowValue",key = "dataTypeShowValue") + private String dataTypeShowValue; + private String dataType; //鍏紡id @@ -86,6 +93,11 @@ public class SalaryItemSobListDTO { @TableTitle(title = "涓◣鐢虫姤琛ㄥ搴斿瓧娈",dataIndex = "taxDeclarationColumn",key = "taxDeclarationColumn") private String taxDeclarationColumn; + // 鐢ㄤ簬鍓嶇灞曠ず 鍏紡鍘熷鍐呭 + private String originFormulaContent; + + // 鐢ㄤ簬鍓嶇灞曠ず 鍘熷sql + private String originSqlContent; //澶囨敞 @SalaryTableColumn(text = "澶囨敞", width = "10%", column = "description") @TableTitle(title = "澶囨敞",dataIndex = "description",key = "description") diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index 940e11b29..2014bf2b8 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.salaryitem.bo.SalaryItemBO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.po.*; +import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -120,17 +121,22 @@ public class SalarySobItemAggregateBO { SalarySobItemPO salarySobItemPO = v.get(i); SalaryItemPO salaryItemPO = salaryItemMap.get(salarySobItemPO.getSalaryItemId()); if (salaryItemPO != null) { + Integer valueType = Optional.ofNullable(salarySobItemPO.getValueType()).orElse(salaryItemPO.getValueType()); items.add(SalarySobItemDTO.builder() .id(salarySobItemPO.getId()) .salarySobId(salarySob.getId()) .salaryItemGroupId(k) .salaryItemId(salaryItemPO.getId()) - .dateType(salaryItemPO.getDataType()) - .valueType(salaryItemPO.getValueType()) + .dataType(salaryItemPO.getDataType()) + .valueType(valueType) + .roundingMode(Optional.ofNullable(salarySobItemPO.getRoundingMode()).orElse(salaryItemPO.getRoundingMode())) + .pattern(Optional.ofNullable(salarySobItemPO.getPattern()).orElse(salaryItemPO.getPattern())) .name(salaryItemPO.getName()) .itemHide(salarySobItemPO.getItemHide()) .formulaId(salarySobItemPO.getFormulaId()) .formulaContent(formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), "")) + .originFormulaContent(valueType == SalaryValueTypeEnum.FORMULA.getValue() ? formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), "") : "") + .originSqlContent(valueType == SalaryValueTypeEnum.SQL.getValue() ? formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), "") : "") .taxDeclarationColumn(SalaryItemBO.buildTaxDeclarationColumn(salaryItemPO.getCode())) .sortedIndex(salarySobItemPO.getSortedIndex()) .canEdit(openFormulaForcedEditing || Objects.equals(salaryItemPO.getCanEdit(), 1)) @@ -172,7 +178,7 @@ public class SalarySobItemAggregateBO { .salarySobId(salarySob.getId()) .salaryItemId(salaryItem.getId()) .salaryItemGroupId(0L) - .dateType(salaryItem.getDataType()) + .dataType(salaryItem.getDataType()) .name(salaryItem.getName()) .formulaId(salarySobBackItem.getFormulaId()) .formulaContent(formulaMap.getOrDefault(salarySobBackItem.getFormulaId(), "杈撳叆")) diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java index e23dc6f16..81bbc138a 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java @@ -63,7 +63,7 @@ public class SalarySobItemDTO { //鍙栧兼柟寮 @see SalaryValueTypeEnum private Integer valueType; - private String dateType; + private String dataType; //鏁版嵁鏉ユ簮锛堝睍绀哄悕绉帮級 private String dataSource; @@ -77,6 +77,12 @@ public class SalarySobItemDTO { //鍏紡鍐呭 private String formulaContent; + // 鐢ㄤ簬鍓嶇灞曠ず 鍏紡鍘熷鍐呭 + private String originFormulaContent; + // 鐢ㄤ簬鍓嶇灞曠ず 鍘熷sql + private String originSqlContent; + + //涓◣鐢虫姤琛ㄥ搴斿瓧娈 private String taxDeclarationColumn; @@ -93,4 +99,14 @@ public class SalarySobItemDTO { //璇ュ垎绫绘槸鍚﹂殣钘忥紙0涓嶉殣钘忥紝1闅愯棌锛 @JsonSerialize(using = ToStringSerializer.class) private Long itemHide; + + /** + * 杩涗綅瑙勫垯 + */ + private Integer roundingMode; + + /** + * 淇濈暀灏忔暟浣嶆暟 + */ + private Integer pattern; } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java new file mode 100644 index 000000000..240625524 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java @@ -0,0 +1,86 @@ +package com.engine.salary.entity.salarysob.dto; + +import com.engine.salary.enums.SalaryRoundingModeEnum; +import com.engine.salary.enums.SalaryValueTypeEnum; +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import com.engine.salary.util.valid.ValidTypeEnum; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + * 钖祫璐﹀-钖祫椤圭洰琛ㄥ崟 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author xzy + * @version 1.0 + **/ +@Data +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +public class SalarySobItemFormDTO { + + //涓婚敭id") + @JsonSerialize(using = ToStringSerializer.class) + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id涓嶅厑璁镐负绌") + private Long id; + + //鍚嶇О") + private String name; + + //鏍哥畻鏃堕殣钘") + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "鏍哥畻鏃堕殣钘忎笉鍏佽涓虹┖") + private Integer itemHide; + + //瀛楁绫诲瀷 + /** + * @see SalaryDataTypeEnum + */ + private String dataType; + + //鑸嶅叆瑙勫垯") + /** + * @see SalaryRoundingModeEnum + */ + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "鑸嶅叆瑙勫垯涓嶅厑璁镐负绌") + private Integer roundingMode; + + //淇濈暀灏忔暟浣") + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 6, message = "灏忔暟浣嶆渶澶氫负6") + private Integer pattern; + + //鍙栧兼柟寮") + /** + * @see SalaryValueTypeEnum + */ + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "鍙栧兼柟寮忎笉鍏佽涓虹┖") + private Integer valueType; + + //鍏紡") + private Long formulaId; + + //鍏紡鍐呭") + private String formulaContent; + + // 鐢ㄤ簬鍓嶇灞曠ず 鍏紡鍘熷鍐呭 + private String originFormulaContent; + // 鐢ㄤ簬鍓嶇灞曠ず 鍘熷sql + private String originSqlContent; + + //澶囨敞") + private String description; + + //鏄惁鍙互缂栬緫") + private Integer canEdit; + + + // 钖祫妗f寮曠敤銆0锛氳柂璧勬。妗堟湭寮曠敤銆1锛氳柂璧勬。妗堝紩鐢 + private Integer useInEmployeeSalary; +} diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java index a1ebb158d..e19856374 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java @@ -77,6 +77,22 @@ public class SalarySobItemSaveParam { private Long itemHide; private Boolean canDelete; + + /** + * 杩涗綅瑙勫垯 + */ + private Integer roundingMode; + + /** + * 淇濈暀灏忔暟浣嶆暟 + */ + private Integer pattern; + + /** + * 鍙栧兼柟寮 + */ + private Integer valueType; + } @Data diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java index 01dcdee14..b85ee84ea 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java @@ -1,5 +1,7 @@ package com.engine.salary.entity.salarysob.po; +import com.engine.salary.enums.SalaryRoundingModeEnum; +import com.engine.salary.enums.SalaryValueTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -100,6 +102,26 @@ public class SalarySobItemPO { */ private Date updateTime; + /** + * 杩涗綅瑙勫垯 + * + * @see SalaryRoundingModeEnum + */ + private Integer roundingMode; + + /** + * 淇濈暀鐨勫皬鏁颁綅鏁 + */ + private Integer pattern; + + /** + * 鍙栧兼柟寮 + * + * @see SalaryValueTypeEnum + */ + private Integer valueType; + + //璇ュ垎绫绘槸鍚﹂殣钘忥紙0涓嶉殣钘忥紝1闅愯棌锛 private Long itemHide; diff --git a/src/com/engine/salary/entity/siaccount/bo/InsuranceComparisonResultBO.java b/src/com/engine/salary/entity/siaccount/bo/InsuranceComparisonResultBO.java index c24a2f513..e8ffcf358 100644 --- a/src/com/engine/salary/entity/siaccount/bo/InsuranceComparisonResultBO.java +++ b/src/com/engine/salary/entity/siaccount/bo/InsuranceComparisonResultBO.java @@ -129,7 +129,7 @@ public class InsuranceComparisonResultBO { */ public static List> buildComparisonTableData(List accountExportPOS, List excelAccountExportPOS, Map schemeIdNameMap) { - Map> excelResultMap = SalaryEntityUtil.group2Map(excelAccountExportPOS, ExcelAccountExportPO::getWorkcode); + Map> excelResultMap = SalaryEntityUtil.group2Map(excelAccountExportPOS, ExcelAccountExportPO::getEmployeeId); // Map> acctResultMap = SalaryEntityUtil.group2Map(accountExportPOS, AccountExportPO::getWorkcode); List paymentList = MapperProxyFactory.getProxy(TaxAgentMapper.class).listAll(); @@ -172,7 +172,7 @@ public class InsuranceComparisonResultBO { map.put("otherSchemeName", schemeIdNameMap.get(accountExportPO.getOtherSchemeId())); //绾夸笅鍊 - List excelResultValueList = excelResultMap.get(accountExportPO.getWorkcode()); + List excelResultValueList = excelResultMap.get(accountExportPO.getEmployeeId()); ExcelAccountExportPO excelAccountExportPO = new ExcelAccountExportPO(); if (excelResultValueList != null && excelResultValueList.size() == 1) { excelAccountExportPO = excelResultValueList.get(0); diff --git a/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBaseInfoBO.java b/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBaseInfoBO.java index f5cd11ee4..8c22ae58f 100644 --- a/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBaseInfoBO.java +++ b/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBaseInfoBO.java @@ -81,6 +81,7 @@ public class InsuranceArchivesBaseInfoBO { .creator(currentEmployeeId) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeType(change.getEmployeeType()) .build()); } // 濡傛灉鏄垹闄 璇存槑锛氬鏋滄湁妗f骞朵笖鏄湪缂寸撼涓墠澶勭悊锛屾病妗f涓嶇敤绠 diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java index 276fd82b3..ab15e4b6a 100644 --- a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java @@ -115,4 +115,9 @@ public class InsuranceArchivesListParam extends BaseQueryParam { * 浜轰簨鐘舵 */ private List personnelStatuses; + + /** + * 鏄惁鏄閮ㄧ郴缁熸。妗 + */ + private boolean extWelArchiveList; } diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java index 7e1b8e406..f05cc309d 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -79,6 +80,13 @@ public class InsuranceArchivesBaseInfoPO { */ private String runStatus; + /** + * 浜哄憳绫诲瀷,0鎴杗ull缁勭粐鏋舵瀯,1闈炵郴缁熶汉鍛 + * + * @see DataCollectionEmployeeTypeEnum + */ + private Integer employeeType; + //---------鏉′欢------- private Collection ids; private Collection employeeIds; diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java index 6fb3c615e..fe5df5c44 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java @@ -35,6 +35,10 @@ public class InsuranceArchivesEmployeePO { private String telephone; private String departmentName; + /** + * 鍒嗛儴 + */ + private String subcompanyName; private BigDecimal position; diff --git a/src/com/engine/salary/enums/SalaryValueTypeEnum.java b/src/com/engine/salary/enums/SalaryValueTypeEnum.java index e3f44acaa..7d82d47d1 100644 --- a/src/com/engine/salary/enums/SalaryValueTypeEnum.java +++ b/src/com/engine/salary/enums/SalaryValueTypeEnum.java @@ -54,6 +54,7 @@ public enum SalaryValueTypeEnum implements BaseEnum { return null; } + public static String getDefaultLabelByValue(Integer value) { if (value == null) { return ""; diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index d73cef7ba..e2d0ada69 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -87,4 +87,19 @@ public interface EmployMapper { List listHrmInfoByIdAndName(@Param("param") HrmQueryParam param); + + /** + * 鏍规嵁閮ㄩ棬鍚嶇О鏌ヨ閮ㄩ棬 + */ + List getDeptInfosByName(String name); + + /** + * 鏍规嵁鍒嗛儴鍚嶇О鏌ヨ鍒嗛儴 + */ + List getSubCompanyInfosByName(String name); + + /** + * 鏍规嵁閮ㄩ棬id鏌ヨ閮ㄩ棬 + */ + DeptInfo getDeptInfoById(Long id); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 9965888f7..0939b02d2 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -233,8 +233,10 @@ e.mobile as mobile, e.subcompanyid1 as subcompanyid, e.departmentid as departmentId, + d.DEPARTMENTNAME as departmentName, e.jobtitle as jobtitleId from hrmresource e + left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) @@ -348,4 +350,26 @@ + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java new file mode 100644 index 000000000..8833c47c6 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java @@ -0,0 +1,102 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameMapper + * @date 2023/07/18 15:58 + * @description 宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕 + */ +public interface SalaryBillItemNameMapper { + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(SalaryBillItemNamePO salaryBillItemNamePO); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + SalaryBillItemNamePO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param salaryBillItemNamePO 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param salaryBillItemNamePO 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param salaryBillItemNamePO 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 鍒犻櫎璁板綍 + * + * @param id 寰呭垹闄ょ殑璁板綍id + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(Long id); + + /** + * 鎵归噺鏇存柊 + * @param salaryBillItemNamePO + */ + void batchUpdate(@Param("collection") List salaryBillItemNamePO); + + /** + * 鎵归噺鎻掑叆 + * @param salaryBillItemNamePO + */ + void batchInsert(@Param("collection") List salaryBillItemNamePO); + + /** + * 鏍规嵁钖祫椤圭洰銆佹ā鏉縤d銆佹ā鏉跨被鍨嬫壒閲忓垹闄 + * @param salaryItemIds + * @param salaryTemplateId + * @param salaryBillType + */ + void deleteByItemIdsAndTemplateId(@Param("salaryItemIds") List salaryItemIds, @Param("salaryTemplateId") Long salaryTemplateId, @Param("salaryBillType") Integer salaryBillType); + + /** + * 鏍规嵁idList鍒犻櫎 + * @param ids + */ + void deleteByIds(@Param("collection") List ids); + + /** + * 鏍规嵁妯℃澘id鍒犻櫎 + * @param ids + */ + void deleteByTemplateIds(@Param("collection") Collection ids); +} diff --git a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml new file mode 100644 index 000000000..d00b52f35 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + t.id + , t.salary_item_id + , t.salary_item_show_name + , t.salary_template_id + , t.salary_bill_type + , t.delete_type + , t.creator + , t.create_time + , t.update_time + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_salary_bill_item_name + + + + id, + + + salary_item_id, + + + salary_item_show_name, + + + salary_template_id, + + + salary_bill_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{salaryItemId}, + + + #{salaryItemShowName}, + + + #{salaryTemplateId}, + + + #{salaryBillType}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + INSERT INTO hrsa_salary_bill_item_name ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + ( + #{item.id}, + #{item.salaryTemplateId}, + #{item.salaryItemId}, + #{item.salaryItemShowName}, + #{item.salaryBillType}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_salary_bill_item_name ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + select + #{item.id,jdbcType=DOUBLE}, + #{item.salaryTemplateId,jdbcType=DOUBLE}, + #{item.salaryItemId,jdbcType=DOUBLE}, + #{item.salaryItemShowName,jdbcType=VARCHAR}, + #{item.salaryBillType,jdbcType=INTEGER}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + INSERT INTO hrsa_salary_bill_item_name ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.salaryTemplateId}, + #{item.salaryItemId}, + #{item.salaryItemShowName}, + #{item.salaryBillType}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_salary_bill_item_name + + salary_item_id=#{salaryItemId}, + salary_item_show_name=#{salaryItemShowName}, + salary_template_id=#{salaryTemplateId}, + salary_bill_type=#{salaryBillType}, + creator=#{creator}, + create_time={createTime}, + update_time=#{updateTime}, + tenant_key=#{tenantKey} + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_salary_bill_item_name + + + salary_item_id=#{salaryItemId}, + + + salary_item_show_name=#{salaryItemShowName}, + + + salary_template_id=#{salaryTemplateId}, + + + salary_bill_type=#{salaryBillType}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_salary_bill_item_name + + + + WHEN id = #{item.id} THEN #{item.salaryItemShowName} + + + + + WHEN id = #{item.id} THEN #{item.updateTime} + + + + WHERE delete_type = 0 + AND id IN + + #{item.id} + + + + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND salary_template_id = #{salaryTemplateId} + AND salary_bill_type = #{salaryBillType} + AND salary_item_id IN + + #{itemId} + + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND salary_template_id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml index da340736e..0895b3560 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml @@ -73,7 +73,8 @@ create_time, update_time, tenant_key, - salary_acct_type + salary_acct_type, + employee_type ) VALUES @@ -89,7 +90,8 @@ #{item.createTime}, #{item.updateTime}, #{item.tenantKey}, - #{item.salaryAcctType} + #{item.salaryAcctType}, + #{item.employeeType} ) @@ -106,7 +108,8 @@ create_time, update_time, tenant_key, - salary_acct_type + salary_acct_type, + employee_type ) @@ -122,7 +125,8 @@ #{item.createTime,jdbcType=DATE}, #{item.updateTime,jdbcType=DATE}, #{item.tenantKey,jdbcType=VARCHAR}, - #{item.salaryAcctType,jdbcType=INTEGER} + #{item.salaryAcctType,jdbcType=INTEGER}, + #{item.employeeType,jdbcType=INTEGER} from dual @@ -140,7 +144,8 @@ create_time, update_time, tenant_key, - salary_acct_type + salary_acct_type, + employee_type ) VALUES ( @@ -155,7 +160,8 @@ #{item.createTime}, #{item.updateTime}, #{item.tenantKey}, - #{item.salaryAcctType} + #{item.salaryAcctType}, + #{item.employeeType} ) @@ -737,7 +743,7 @@ - + UPDATE hrsa_salary_send_info diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.java index 033fd38f1..77106cd38 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.java @@ -13,7 +13,7 @@ public interface SalarySobItemHideMapper { * @param salarySobPO * @return */ - List getById(SalarySobItemHidePO salarySobPO); + List listHideItemIds(SalarySobItemHidePO salarySobPO); /*** * @description 鍒犻櫎钖祫璐﹀鐨勮柂璧勯」鐩殣钘忎俊鎭 @@ -28,4 +28,5 @@ public interface SalarySobItemHideMapper { void updateByItemId(SalarySobItemHidePO salarySobGroupItemHidePO); + List listSome(@Param("param") SalarySobItemHidePO po); } diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.xml index f49701ba7..05fc565c6 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemHideMapper.xml @@ -12,7 +12,7 @@ - SELECT salary_item_id FROM hrsa_salary_item_hide where delete_type=0 and salary_sob_id=#{salarySobId} @@ -20,6 +20,35 @@ and is_group=#{isGroup} + + and salary_item_id=#{salaryItemId} + + + + diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml index 31debaf2f..9b5061794 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml @@ -36,6 +36,9 @@ , t.update_time ,t.can_delete ,t.salary_item_code + , t.rounding_mode + , t.pattern + , t.value_type @@ -161,6 +164,9 @@ , t.sorted_index , t.tenant_key , t.update_time + , t.rounding_mode + , t.pattern + , t.value_type ,t.can_delete ,t.salary_item_code ,h.item_hide @@ -276,6 +282,9 @@ tenant_key=#{tenantKey}, update_time=#{updateTime}, can_delete=#{canDelete}, + rounding_mode=#{roundingMode}, + pattern=#{pattern}, + value_type=#{valueType}, WHERE id = #{id} AND delete_type = 0 @@ -321,6 +330,15 @@ can_delete=#{canDelete}, + + rounding_mode=#{roundingMode}, + + + pattern=#{pattern}, + + + value_type=#{valueType}, + WHERE id = #{id} AND delete_type = 0 @@ -367,7 +385,7 @@ INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id, - sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,salary_item_code) + sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code) VALUES ( @@ -383,13 +401,16 @@ #{item.deleteType}, #{item.tenantKey}, #{item.canDelete}, + #{item.roundingMode}, + #{item.pattern}, + #{item.valueType}, #{item.salaryItemCode} ) INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id, - sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,salary_item_code) + sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code) select @@ -405,6 +426,9 @@ #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR}, #{item.canDelete,jdbcType=INTEGER}, + #{item.roundingMode,jdbcType=INTEGER}, + #{item.pattern,jdbcType=INTEGER}, + #{item.valueType,jdbcType=INTEGER}, #{item.salaryItemCode,jdbcType=INTEGER} from dual @@ -412,7 +436,7 @@ INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id, - sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,salary_item_code) + sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code) VALUES ( #{item.salarySobId}, @@ -427,6 +451,9 @@ #{item.deleteType}, #{item.tenantKey}, #{item.canDelete}, + #{item.roundingMode}, + #{item.pattern}, + #{item.valueType}, #{item.salaryItemCode} ) diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index 558d84eb0..ca0cb78fb 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -85,4 +85,10 @@ public interface FundSchemeMapper { * @param fundArchiveDelIds */ void deleteByIds(@Param("ids")List fundArchiveDelIds); + + /** + * 鏂板 + * @param insuranceArchivesFundSchemePO + */ + void insert(InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO); } diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index 17416d13c..8590a88e6 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -327,4 +327,45 @@ + + + + INSERT INTO hrsa_fund_archives( + fund_scheme_id, + fund_account, + fund_end_time, + fund_start_time, + fund_payment_base_string, + supplement_fund_account, + create_time, + creator, + non_payment, + delete_type, + tenant_key, + under_take, + payment_organization, + update_time, + welfare_type, + employee_id) + VALUES + ( + #{fundSchemeId}, + #{fundAccount}, + #{fundEndTime}, + #{fundStartTime}, + #{fundPaymentBaseString}, + #{supplementFundAccount}, + #{createTime}, + #{creator}, + #{nonPayment}, + #{deleteType}, + #{tenantKey}, + #{underTake}, + #{paymentOrganization}, + #{updateTime}, + #{welfareType}, + #{employeeId} + ) + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java index 4f308f1b4..b604d49ef 100644 --- a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java +++ b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java @@ -113,4 +113,11 @@ public interface InsuranceBaseInfoMapper { * @param archiveDelIds */ void deleteByIds(@Param("ids")List archiveDelIds); + + /** + * 鏍规嵁id鏇存柊 + * + * @param po + */ + void updateById(InsuranceArchivesBaseInfoPO po); } diff --git a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml index 2d63845b8..6caa9ac34 100644 --- a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml @@ -15,6 +15,7 @@ + @@ -31,6 +32,7 @@ , t.creator , t.delete_type , t.tenant_key + , t.employee_type @@ -100,7 +102,7 @@ INSERT INTO hrsa_insurance_base_info - (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status) + (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status, employee_type) VALUES ( @@ -115,13 +117,14 @@ #{item.deleteType}, #{item.createTime}, #{item.updateTime}, - #{item.runStatus} + #{item.runStatus}, + #{item.employeeType} ) INSERT INTO hrsa_insurance_base_info - (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status) + (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status, employee_type) select #{item.id,jdbcType=DOUBLE}, @@ -135,14 +138,15 @@ #{item.deleteType}, #{item.createTime}, #{item.updateTime}, - #{item.runStatus,jdbcType=VARCHAR} + #{item.runStatus,jdbcType=VARCHAR}, + #{item.employeeType} from dual INSERT INTO hrsa_insurance_base_info - (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status) + (id,employee_id,payment_organization,social_archives_id,fund_archives_id,other_archives_id,tenant_key,creator,delete_type,create_time,update_time,run_status, employee_type) VALUES ( #{item.id}, @@ -156,7 +160,8 @@ #{item.deleteType}, #{item.createTime}, #{item.updateTime}, - #{item.runStatus} + #{item.runStatus}, + #{item.employeeType} ) @@ -318,4 +323,23 @@ + + UPDATE hrsa_insurance_base_info + + + employee_id = #{employeeId}, + payment_organization = #{paymentOrganization}, + social_archives_id = #{socialArchivesId}, + fund_archives_id = #{fundArchivesId}, + other_archives_id = #{otherArchivesId}, + run_status = #{runStatus}, + create_time = #{createTime}, + update_time = #{updateTime}, + creator = #{creator}, + delete_type = #{deleteType}, + tenant_key = #{tenantKey}, + + WHERE id = #{id} + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index 80d9785f4..26d684d21 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -77,4 +77,10 @@ public interface OtherSchemeMapper { * @param otherArchiveDelIds */ void deleteByIds(@Param("ids") List otherArchiveDelIds); + + /** + * 鏂板 + * @param insuranceArchivesOtherSchemePO + */ + void insert(InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO); } diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index fcfd38706..74c514a6e 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -305,4 +305,39 @@ + + + INSERT INTO hrsa_other_archives( + other_scheme_id, + other_start_time, + under_take, + tenant_key, + welfare_type, + other_end_time, + employee_id, + delete_type, + update_time, + create_time, + non_payment, + creator, + payment_organization, + other_payment_base_string) + VALUES + ( + #{otherSchemeId}, + #{otherStartTime}, + #{underTake}, + #{tenantKey}, + #{welfareType}, + #{otherEndTime}, + #{employeeId}, + #{deleteType}, + #{updateTime}, + #{createTime}, + #{nonPayment}, + #{creator}, + #{paymentOrganization}, + #{otherPaymentBaseString} + ) + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index 28f1bc511..b2857ba99 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -77,6 +77,8 @@ public interface SocialSchemeMapper { List queryEmployeeList(@Param("param") InsuranceArchivesListParam param); + List queryExtEmployeeList(@Param("param") InsuranceArchivesListParam param); + /** * 鏍规嵁绀句繚缂寸撼缁勭粐id鑾峰彇 * @param paymentOrganization @@ -113,4 +115,10 @@ public interface SocialSchemeMapper { * @param socialArchiveDelIds */ void deleteByIds(@Param("ids")List socialArchiveDelIds); + + /** + * 鏂板 + * @param insuranceArchivesSocialSchemePO + */ + void insert(InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index 10395159b..cc73ff033 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -357,7 +357,8 @@ fund.id AS fundId, other.id AS otherId, e.companystartdate as companystartdate, - e.enddate as dismissdate + e.enddate as dismissdate, + c.subcompanyname as subcompanyName FROM hrsa_insurance_base_info base LEFT JOIN hrmresource e ON base.employee_id = e.id @@ -369,12 +370,42 @@ WHERE 1=1 AND base.delete_type = 0 + AND base.employee_type is null ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc} + @@ -623,6 +654,235 @@ + + + AND + ( + e.username like CONCAT('%',#{param.keyword},'%') + ) + + + AND e.username like CONCAT('%',#{param.userName},'%') + + + AND e.workcode like CONCAT('%',#{param.jobNum},'%') + + + AND e.department_id IN + + #{departmentId} + + + + AND e.subcompany_id IN + + #{subcompanyId} + + + + AND e.status IN + + #{userStatus} + + + + AND e.jobtitle_id IN + + #{position} + + + + AND e.companystartdate > #{param.hiredateStart} + + + AND e.companystartdate < #{param.hiredateEnd} + + + AND siSchemeId = #{param.siSchemeId} + + + AND fundSchemeId = #{param.fundSchemeId} + + + AND otherSchemeId = #{param.otherSchemeId} + + + AND base.payment_organization = #{param.taxAgentId} + + + AND base.run_status IN + + #{runStatus} + + + + + AND e.id IN + + #{item} + + + + + AND base.id IN + + #{item} + + + + + + + AND + ( + e.username like '%'+#{param.keyword}+'%' + ) + + + AND e.username like '%'+#{param.userName}+'%' + + + AND e.workcode like '%'+#{param.jobNum}+'%' + + + AND e.department_id IN + + #{departmentId} + + + + AND e.subcompany_id IN + + #{subcompanyId} + + + + AND e.status IN + + #{userStatus} + + + + AND e.jobtitle_id IN + + #{position} + + + + AND e.companystartdate > #{param.hiredateStart} + + + AND e.companystartdate < #{param.hiredateEnd} + + + + AND siSchemeId = #{param.siSchemeId} + + + AND fundSchemeId = #{param.fundSchemeId} + + + AND otherSchemeId = #{param.otherSchemeId} + + + AND base.payment_organization = #{param.taxAgentId} + + + AND base.run_status IN + + #{runStatus} + + + + AND e.id IN + + #{item} + + + + AND base.id IN + + #{item} + + + + + + + + AND + ( + e.username like '%'||#{param.keyword}||'%' + ) + + + AND e.username like '%'||#{param.userName}||'%' + + + AND e.workcode like '%'||#{param.jobNum}||'%' + + + AND e.department_id IN + + #{departmentId} + + + + AND e.subcompany_id IN + + #{subcompanyId} + + + + AND e.status IN + + #{userStatus} + + + + AND e.jobtitle_id IN + + #{position} + + + + AND e.companystartdate > #{param.hiredateStart} + + + AND e.companystartdate < #{param.hiredateEnd} + + + AND siSchemeId = #{param.siSchemeId} + + + AND fundSchemeId = #{param.fundSchemeId} + + + AND otherSchemeId = #{param.otherSchemeId} + + + AND base.payment_organization = #{param.taxAgentId} + + + AND base.run_status IN + + #{runStatus} + + + + AND e.id IN + + #{item} + + + + AND base.id IN + + #{item} + + + + select @@ -199,5 +210,14 @@ + + + UPDATE hrsa_insurance_category + + update_time=#{updateTime}, + delete_type = 1 + + WHERE id = #{id} AND delete_type = 0 AND data_type = 0 + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxagent/TaxAgentEmpMapper.xml b/src/com/engine/salary/mapper/taxagent/TaxAgentEmpMapper.xml index bae6797bf..a74e1c1aa 100644 --- a/src/com/engine/salary/mapper/taxagent/TaxAgentEmpMapper.xml +++ b/src/com/engine/salary/mapper/taxagent/TaxAgentEmpMapper.xml @@ -80,7 +80,12 @@ AND update_time = #{updateTime} - AND employee_type = #{employeeType} + + AND (employee_type = #{employeeType} or employee_type is null) + + + AND employee_type = #{employeeType} + AND tax_agent_id IN diff --git a/src/com/engine/salary/service/ExtEmpService.java b/src/com/engine/salary/service/ExtEmpService.java index b3a897798..63c9729e6 100644 --- a/src/com/engine/salary/service/ExtEmpService.java +++ b/src/com/engine/salary/service/ExtEmpService.java @@ -1,14 +1,17 @@ package com.engine.salary.service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.util.page.PageInfo; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.util.Collection; import java.util.List; +import java.util.Map; public interface ExtEmpService { @@ -47,4 +50,10 @@ public interface ExtEmpService { Collection listAllForReport(); ExtEmpPO getById(Long id); + + XSSFWorkbook exportImportTemplate(); + + Map previewImportExtEmp(ExtEmpImportParam param); + + Map importExtEmp(ExtEmpImportParam param); } \ No newline at end of file diff --git a/src/com/engine/salary/service/SICategoryService.java b/src/com/engine/salary/service/SICategoryService.java index d38b8357d..dfaa84349 100644 --- a/src/com/engine/salary/service/SICategoryService.java +++ b/src/com/engine/salary/service/SICategoryService.java @@ -58,4 +58,11 @@ public interface SICategoryService { * @date 2022/10/14 14:50 */ Map updateCategoryName(ICategoryFormDTO iCategoryFormDTO); + + /*** + * @description 淇敼鑷畾涔夌鍒 鍚嶇О銆佺即璐瑰璞 + */ + Map updateCategoryNameAndPayScope(ICategoryFormDTO iCategoryFormDTO); + + Map deleteCustomCategory(ICategoryFormDTO iCategoryFormDTO); } diff --git a/src/com/engine/salary/service/SalaryBillItemNameService.java b/src/com/engine/salary/service/SalaryBillItemNameService.java new file mode 100644 index 000000000..5399e47f1 --- /dev/null +++ b/src/com/engine/salary/service/SalaryBillItemNameService.java @@ -0,0 +1,100 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryBill.param.SalaryBillItemNameSaveParam; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; + +import java.util.Collection; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameService + * @date 2023/07/18 16:15 + * @description 宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕绉 + */ +public interface SalaryBillItemNameService { + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + SalaryBillItemNamePO getById(Long id); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param salaryBillItemNamePO 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param salaryBillItemNamePO 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param salaryBillItemNamePO 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 鍒犻櫎璁板綍 + * + * @param id 寰呭垹闄ょ殑璁板綍id + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(Long id); + + /** + * 鏍规嵁宸ヨ祫鍗曟ā鏉縤d鍜屽伐璧勫崟绫诲瀷鑾峰彇 璁剧疆鐨勯」鐩悕绉颁俊鎭 + * @param build + * @return + */ + List ListByTemplateAndType(SalaryBillItemNamePO build); + + /** + * 璁剧疆宸ヨ祫鍗曡柂璧勯」鐩樉绀哄悕 + * @param saveList + */ + void saveItemShowName(List saveList); + + /** + * 鎵归噺鏇存柊 + * @param needUpdateList + */ + void batchUpdate(List needUpdateList); + + /** + * 鎵归噺鎻掑叆 + * @param needInsertList + */ + void batchInsert(List needInsertList); + + /** + * 鏍规嵁id鎵归噺鍒犻櫎 + * @param needDeleteIds + */ + void deleteByIds(List needDeleteIds); + + /** + * 鏍规嵁宸ヨ祫鍗曟ā鏉縤d鍒犻櫎 + * @param ids + */ + void deleteByTemplateIds(Collection ids); +} diff --git a/src/com/engine/salary/service/SalarySobItemHideService.java b/src/com/engine/salary/service/SalarySobItemHideService.java index 7551c75c2..826825449 100644 --- a/src/com/engine/salary/service/SalarySobItemHideService.java +++ b/src/com/engine/salary/service/SalarySobItemHideService.java @@ -13,4 +13,14 @@ public interface SalarySobItemHideService { * @return */ List listHideGroupBysalarySobId(SalarySobItemHidePO salarySobId); + + /** + * 鏍规嵁钖祫璐﹀id鏌ヨ鍝簺瀛楁鍏抽棴鏄剧ず + * + * @param po + * @return + */ + List listSome(SalarySobItemHidePO po); + + void updateById(SalarySobItemHidePO salarySobItemHidePO); } diff --git a/src/com/engine/salary/service/SalarySobItemService.java b/src/com/engine/salary/service/SalarySobItemService.java index adca1503b..37197e51f 100644 --- a/src/com/engine/salary/service/SalarySobItemService.java +++ b/src/com/engine/salary/service/SalarySobItemService.java @@ -2,6 +2,7 @@ package com.engine.salary.service; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO; import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; @@ -119,4 +120,9 @@ public interface SalarySobItemService { * */ void deleteItemShowBySalarySobIds(Collection salarySobIds); + + /** + * 钖祫椤圭洰鐨勮鎯 + */ + SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param); } diff --git a/src/com/engine/salary/service/SalaryTemplateService.java b/src/com/engine/salary/service/SalaryTemplateService.java index bdf8826cb..29766417c 100644 --- a/src/com/engine/salary/service/SalaryTemplateService.java +++ b/src/com/engine/salary/service/SalaryTemplateService.java @@ -97,7 +97,7 @@ public interface SalaryTemplateService { * @param salarySobId * @return */ - List getSalaryItemSetContainHide(Long salarySobId, boolean isReplenish); + List getSalaryItemSetContainHide(Long salarySobId, Long salaryTemplateId, boolean isReplenish); /** * 鑾峰彇榛樿宸ヨ祫鍗曟ā鏉 diff --git a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java index 37cbfd652..f15ae19f1 100644 --- a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java @@ -61,22 +61,30 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 100379, "閫宸湀浠"), "supplementaryMonth")); } list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91325, "涓◣鎵g即涔夊姟浜"), "socialPayOrg")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91324, "绀句繚璐﹀彿"), "socialAccount")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91323, "绀句繚鏂规鍚嶇О"), "socialSchemeName")); + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91324, "绀句繚璐﹀彿"), "socialAccount")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91323, "绀句繚鏂规鍚嶇О"), "socialSchemeName")); + } + //缁勮绀句繚鍩烘暟 columns.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px",k, v)); }); -// list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91488, "鍏Н閲戠即绾崇粍缁"), "fundPayOrg")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91486, "鍏Н閲戣处鍙"), "fundAccount")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91485, "鍏Н閲戞柟妗堝悕绉"), "fundSchemeName")); + + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91486, "鍏Н閲戣处鍙"), "fundAccount")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91485, "鍏Н閲戞柟妗堝悕绉"), "fundSchemeName")); + } + //缁勮鍏Н閲戝熀鏁 columns.get(WelfareTypeEnum.ACCUMULATION_FUND.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px",k, v)); }); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91487, "琛ュ厖鍏Н閲戣处鍙"), "supplementFundAccount")); -// list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91497, "鍏朵粬绂忓埄缂寸撼缁勭粐"), "otherPayOrg")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel(91496, "鍏朵粬绂忓埄鏂规鍚嶇О"), "otherSchemeName")); + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91487, "琛ュ厖鍏Н閲戣处鍙"), "supplementFundAccount")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel(91496, "鍏朵粬绂忓埄鏂规鍚嶇О"), "otherSchemeName")); + } + columns.get(WelfareTypeEnum.OTHER.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px",k, v)); }); diff --git a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java index 755b9e32f..c311d6086 100644 --- a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java +++ b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; @@ -10,22 +11,40 @@ import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.extemp.ExternalEmployeeMapper; import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.excel.ExcelComment; +import com.engine.salary.util.excel.ExcelParseHelper; +import com.engine.salary.util.excel.ExcelSupport; +import com.engine.salary.util.excel.ExcelUtilPlus; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Validate; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; +import weaver.file.ImageFileManager; +import weaver.general.Util; import weaver.hrm.User; +import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; + /** * 绱涓撻」 *

Copyright: Copyright (c) 2022

@@ -45,6 +64,9 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private EmployMapper getEmployMapper() { + return MapperProxyFactory.getProxy(EmployMapper.class); + } @Override public List list(ExtEmpQueryParam param) { @@ -215,4 +237,318 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { return employee; }).collect(Collectors.toList()); } + + @Override + public XSSFWorkbook exportImportTemplate() { + + // 妯℃澘琛ㄥご + List headerList = Lists.newArrayList( + SalaryI18nUtil.getI18nLabel(25034, "濮撳悕"), + SalaryI18nUtil.getI18nLabel(27511, "閮ㄩ棬"), + SalaryI18nUtil.getI18nLabel(33553, "鍒嗛儴"), + SalaryI18nUtil.getI18nLabel(1516, "鍏ヨ亴鏃ユ湡"), + SalaryI18nUtil.getI18nLabel(125238, "鎵嬫満鍙"), + SalaryI18nUtil.getI18nLabel(1933, "宸ュ彿"), + SalaryI18nUtil.getI18nLabel(1887, "韬唤璇佸彿鐮"), + SalaryI18nUtil.getI18nLabel(0, "鏈汉寮鎴风殑閾惰鍗″崱鍙"), + SalaryI18nUtil.getI18nLabel(0, "鏈汉寮鎴风殑閾惰鍗″紑鎴锋敮琛屽叏绉")); + List dataIndexList = Lists.newArrayList("username", "departmentName", "subcompanyName", "companystartdate", "mobile", "workcode", "idNo", "bankCardNum", "bankName"); + + // excel瀵煎嚭鐨勬暟鎹 + List> rows = new ArrayList<>(); + rows.add(headerList); + + // 娉ㄩ噴 + List excelComments = Lists.newArrayList(); + excelComments.add(new ExcelComment(0, 0, 1, 2, SalaryI18nUtil.getI18nLabel(30036, "蹇呭~"))); + excelComments.add(new ExcelComment(3, 0, 4, 2, SalaryI18nUtil.getI18nLabel(542348, "鏍煎紡鏍蜂緥涓'2022-01-01'銆'2022/1/1'"))); + + String sheetName = "闈炵郴缁熶汉鍛樺鍏ユā鏉"; + return ExcelUtilPlus.genWorkbookV2(rows, sheetName, excelComments); + } + + @Override + public Map previewImportExtEmp(ExtEmpImportParam param) { + //鍙傛暟鏍¢獙 + ValidUtil.doValidator(param); + + Map map = new HashMap<>(); + + InputStream fileInputStream = null; + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); + Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); + map.put("headers", ExcelSupport.getSheetHeader(sheet, 0)); + map.put("list", ExcelParseHelper.parse2List(sheet, 1)); + return map; + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + } + + @Override + public Map importExtEmp(ExtEmpImportParam param){ + + Map apidatas = new HashMap(); + + //excel鏂囦欢id + String imageId = Util.null2String(param.getImageId()); + Validate.notBlank(imageId, SalaryI18nUtil.getI18nLabel(542127, "imageId涓虹┖")); + + // 澶辫触鐨勬暟閲 + int failCount = 0; + // 鎴愬姛鐨勬暟閲 + int successCount = 0; + InputStream fileInputStream = null; + try { + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); + + Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); + //鏁版嵁搴撲腑鐜版湁闈炵郴缁熶汉鍛橀泦鍚 + List allExtEmpInfo= getExternalEmployeeMapper().listAll(); + + // 閿欒鎻愮ず淇℃伅 + List excelComments = Lists.newArrayList(); + // 瀛樺湪閿欒鐨勯偅琛屾暟鎹 + List> errorDatas = Lists.newArrayList(); + // 琛ㄥご + List headers = ExcelSupport.getSheetHeader(sheet, 0); + // 澶勭悊鏁板 + List> data = ExcelParseHelper.parse2Map(sheet, 1); + if (CollectionUtils.isEmpty(headers)) { + throw new SalaryRunTimeException("琛ㄥご涓虹┖"); + } + if (CollectionUtils.isEmpty(data)) { + throw new SalaryRunTimeException("鏃犳暟鎹"); + } + //瀛樺偍寰呮柊澧炲拰寰呮洿鏂扮殑ExtEmpPO鏁版嵁 + List updateExtEmpPOList = new ArrayList<>(); + List insertExtEmpPOList = new ArrayList<>(); + //閬嶅巻excel琛ㄥ叿浣撴暟鎹 + for (int i = 0; i < data.size(); i++) { + + String row = "绗" + (i + 1) + "琛"; + + boolean isError = false; + Map map = data.get(i); + Long employeeId = 0L; + + String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(25034, "濮撳悕"), ""); + String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(27511, "閮ㄩ棬"), ""); + String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(33553, "鍒嗛儴"), ""); + String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1516, "鍏ヨ亴鏃ユ湡"), ""); + + //鏍¢獙濮撳悕 + if (StringUtils.isBlank(username)) { + //濮撳悕鏄繀濉」 + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(102838, "濮撳悕涓嶈兘涓虹┖")); + excelComments.add(errorMessageMap); + } + long usernameNum = updateExtEmpPOList.stream().filter(f -> f.getUsername().equals(username)).count() + insertExtEmpPOList.stream().filter(f -> f.getUsername().equals(username)).count(); + if (usernameNum > 0) { + //excel涓鍚嶇浉鍚屾椂锛屽彧浼氬綍鍏ョ涓娆″嚭鐜扮殑鏁版嵁 + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(102838, "鏈excel鏂囦欢涓凡瀛樺湪璇ュ鍚嶇浉鍏虫暟鎹紝鏈鏁版嵁鏃犳硶褰曞叆")); + excelComments.add(errorMessageMap); + } + //鏍¢獙閮ㄩ棬銆佸垎閮 + List subCompanyInfos = new ArrayList<>(); + List deptInfos = new ArrayList<>(); + if (StringUtils.isNotBlank(subcompanyName)) { + subCompanyInfos = getEmployMapper().getSubCompanyInfosByName(subcompanyName); + if (subCompanyInfos.size() == 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "鍒嗛儴淇℃伅涓嶅瓨鍦紝璇锋鏌ュ垎閮ㄦ暟鎹槸鍚︽纭")); + excelComments.add(errorMessageMap); + } + } + if (StringUtils.isNotBlank(departmentName)) { + deptInfos = getEmployMapper().getDeptInfosByName(departmentName); + if (deptInfos.size() == 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "閮ㄩ棬淇℃伅涓嶅瓨鍦紝璇锋鏌ラ儴闂ㄦ暟鎹槸鍚︽纭")); + excelComments.add(errorMessageMap); + } + } + if (StringUtils.isNotBlank(companystartdate) && (companystartdate.length() < 10 || !SalaryDateUtil.checkDay(companystartdate.substring(0, 10)))) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "鍏ヨ亴鏃ユ湡鏍煎紡閿欒锛屾纭牸寮忎负YYYY-MM鎴栬厃yyy-MM-dd")); + excelComments.add(errorMessageMap); + } + + if (!isError){ + //鏍¢獙褰撳墠鏁版嵁鏄惁鏈夌浉鍏虫暟鎹紙濮撳悕鐩稿悓锛夊瓨鍦ㄦ暟鎹簱涓紝鏈夊垯鏇存柊锛屾棤鍒欐柊寤 + List targetExtEmpInfoList = allExtEmpInfo.stream().filter(f -> f.getUsername().equals(username)).collect(Collectors.toList()); + //鏍¢獙閮ㄩ棬鍜屽垎閮ㄥ叧绯 + List targetDeptInfos = new ArrayList<>(); + List targetSubCompanyInfos = new ArrayList<>(); + if (targetExtEmpInfoList.size() == 1) { + ExtEmpPO targetExtEmpInfo = targetExtEmpInfoList.get(0); + //灏嗗簱涓凡鏈夌殑閮ㄩ棬鍜屽垎甯冧俊鎭彇鍑猴紙excel琛屾湭璁剧疆瀵瑰簲瀛楁鏁版嵁鏃讹級 + if (targetExtEmpInfo.getSubcompanyId() != null && subCompanyInfos.size() == 0) { + subCompanyInfos.add(SubCompanyInfo.builder().id(targetExtEmpInfo.getSubcompanyId()).name(targetExtEmpInfo.getSubcompanyName()).build()); + } + if (targetExtEmpInfo.getDepartmentId() != null && deptInfos.size() == 0) { + DeptInfo oldDeptInfo = getEmployMapper().getDeptInfoById(targetExtEmpInfo.getDepartmentId()); + deptInfos.add(oldDeptInfo); + } + } + //鍒嗛儴缁撴灉鏁颁负0锛岄儴闂ㄧ粨鏋滄暟澶т簬1锛屽垯鏃犳硶鍖归厤 + if(subCompanyInfos.size() == 0 && deptInfos.size() > 1) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "绯荤粺涓瓨鍦ㄩ噸澶嶉儴闂ㄤ俊鎭紝鏃犳硶鎸囧畾褰撳墠浜哄憳鍏宠仈鐨勫敮涓閮ㄩ棬锛岃閫氳繃濉啓閮ㄩ棬鎵灞炵殑鍒嗛儴淇℃伅鏉ョ缉灏忛儴闂ㄧ瓫閫夎寖鍥")); + excelComments.add(errorMessageMap); + } else if (subCompanyInfos.size() > 1 && deptInfos.size() == 0) { + //閮ㄩ棬缁撴灉鏁颁负0锛屽垎閮ㄧ粨鏋滄暟澶т簬1锛屽垯鏃犳硶鍖归厤 + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "绯荤粺涓瓨鍦ㄩ噸澶嶅垎閮ㄤ俊鎭紝鏃犳硶鎸囧畾褰撳墠浜哄憳鍏宠仈鐨勫敮涓鍒嗛儴锛岃閫氳繃濉啓浜哄憳鎵灞炵殑閮ㄩ棬淇℃伅鏉ョ缉灏忓垎閮ㄧ瓫閫夎寖鍥")); + excelComments.add(errorMessageMap); + } else if (subCompanyInfos.size() >= 1 && deptInfos.size() >= 1) { + //閮ㄩ棬缁撴灉鏁板ぇ浜庣瓑浜1锛屽垎閮ㄧ粨鏋滄暟澶т簬绛変簬1锛岀瓫閫夊嚭鍙厤瀵圭殑缁勫悎锛屾牴鎹儴闂ㄧ殑鎵灞炲垎閮ㄥ瓧娈佃繘琛岄厤瀵 + for (DeptInfo deptInfo : deptInfos) { + if (subCompanyInfos.stream().filter(g -> g.getId().equals(deptInfo.getSubcompanyid1())).count() > 0) { + targetDeptInfos.add(deptInfo); + } + } + if (targetDeptInfos.size() == 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "閮ㄩ棬涓庡垎閮ㄦ棤娉曞尮閰")); + excelComments.add(errorMessageMap); + } else if (targetDeptInfos.size() > 1) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "璇ョ粍鏁版嵁涓殑閮ㄩ棬鍜屽垎閮ㄤ俊鎭湪绯荤粺涓嚭鐜板缁勫尮閰嶇殑閮ㄩ棬鍜屽垎甯冪粍鍚堬紝鏃犳硶鎸囧畾鍞竴鐨勯儴闂ㄥ拰鍒嗛儴缁勫悎")); + excelComments.add(errorMessageMap); + } else { + targetSubCompanyInfos = subCompanyInfos.stream().filter(f -> f.getId().equals(targetDeptInfos.get(0).getSubcompanyid1())).collect(Collectors.toList()); + } + + } else if (subCompanyInfos.size() == 0 && deptInfos.size() == 1) { + //鍒嗛儴缁撴灉鏁颁负0锛岄儴闂ㄧ粨鏋滄暟涓1锛屽彲浠ュ尮閰 + targetDeptInfos.add(deptInfos.get(0)); + } else if (subCompanyInfos.size() == 1 && deptInfos.size() == 0) { + //閮ㄩ棬缁撴灉鏁颁负0锛屽垎閮ㄧ粨鏋滄暟涓1锛屽彲浠ュ尮閰 + targetSubCompanyInfos.add(subCompanyInfos.get(0)); + } + //鏀堕泦excel鏈夋晥鏁版嵁锛屽苟鍖哄垎鏂板鍜屾洿鏂 + DeptInfo finalDeptInfo = targetDeptInfos.size() > 0 ? targetDeptInfos.get(0) : null; + SubCompanyInfo finalSubCompanyInfo = targetSubCompanyInfos.size() > 0 ? targetSubCompanyInfos.get(0) : null; + if (targetExtEmpInfoList.isEmpty()) { + if (!isError) { + //娣诲姞涓鏉℃柊寤烘暟鎹 + insertExtEmpPOList.add(handleExtEmpInfo(null, map, finalDeptInfo, finalSubCompanyInfo)); + } + } else if (targetExtEmpInfoList.size() > 1) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "鏁版嵁搴撲腑闈炵郴缁熶汉鍛樹俊鎭瓨鍦ㄥ鍚嶇浉鍚屾暟鎹紝璇峰厛纭繚濮撳悕鍞竴")); + excelComments.add(errorMessageMap); + } else { + if (!isError) { + //娣诲姞涓鏉℃洿鏂版暟鎹 + updateExtEmpPOList.add(handleExtEmpInfo(targetExtEmpInfoList.get(0), map, finalDeptInfo, finalSubCompanyInfo)); + } + } + + } + + if (isError) { + failCount++; + errorDatas.add(map); + } else { + successCount++; + } + + } + //鏇存柊 + for(ExtEmpPO po : updateExtEmpPOList) { + getExternalEmployeeMapper().updateIgnoreNull(po); + } + //鏂板缓 + for(ExtEmpPO po : insertExtEmpPOList) { + getExternalEmployeeMapper().insertIgnoreNull(po); + } + + + apidatas.put("successCount", successCount); + apidatas.put("errorCount", failCount); + apidatas.put("errorData", excelComments); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } + return apidatas; + } + + public ExtEmpPO handleExtEmpInfo(ExtEmpPO po, Map map, DeptInfo deptInfo, SubCompanyInfo subCompanyInfo) { + ExtEmpPO resultPo = new ExtEmpPO(); + if (po == null) { + //鏂板缓 + resultPo.setId(IdGenerator.generate()); + resultPo.setStatus("2"); + resultPo.setCreateTime(new Date()); + resultPo.setUpdateTime(new Date()); + resultPo.setDeleteType(0); + resultPo.setCreator((long) user.getUID()); + } else { + //鏇存柊 + BeanUtils.copyProperties(po, resultPo); + resultPo.setUpdateTime(new Date()); + } + String username = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(25034, "濮撳悕"), ""); +// String departmentName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(27511, "閮ㄩ棬"), ""); +// String subcompanyName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(33553, "鍒嗛儴"), ""); + String companystartdate = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1516, "鍏ヨ亴鏃ユ湡"), ""); + String mobile = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(125238, "鎵嬫満鍙"), ""); + String workcode = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1933, "宸ュ彿"), ""); + String idNo = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(1887, "韬唤璇佸彿鐮"), ""); + String bankCardNum = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(0, "鏈汉寮鎴风殑閾惰鍗″崱鍙"), ""); + String bankName = (String) map.getOrDefault(SalaryI18nUtil.getI18nLabel(0, "鏈汉寮鎴风殑閾惰鍗″紑鎴锋敮琛屽叏绉"), ""); + + if (StringUtils.isNotBlank(companystartdate)) { + resultPo.setCompanystartdate(companystartdate.substring(0, 10)); + } + + if (StringUtils.isNotBlank(username)) { + resultPo.setUsername(username); + } + if (StringUtils.isNotBlank(mobile)) { + resultPo.setMobile(mobile); + } + if (StringUtils.isNotBlank(workcode)) { + resultPo.setWorkcode(workcode); + } + if (StringUtils.isNotBlank(idNo)) { + resultPo.setIdNo(idNo); + } + if (StringUtils.isNotBlank(bankCardNum)) { + resultPo.setBankCardNum(bankCardNum); + } + if (StringUtils.isNotBlank(bankName)) { + resultPo.setBankName(bankName); + } + if (deptInfo != null) { + resultPo.setDepartmentName(deptInfo.getName()); + resultPo.setDepartmentId(deptInfo.getId()); + } + if (subCompanyInfo != null) { + resultPo.setSubcompanyName(subCompanyInfo.getName()); + resultPo.setSubcompanyId(subCompanyInfo.getId()); + } + if (resultPo.getDepartmentName() == null) { + resultPo.setDepartmentName(""); + } + resultPo.setModifier((long) user.getUID()); + return resultPo; + } } diff --git a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java index 86543188a..138eb8cf1 100644 --- a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java @@ -66,7 +66,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (CollectionUtils.isEmpty(list)) { return result; } - List employeeIds = list.stream().map(item -> item.getEmployeeId()).collect(Collectors.toList()); + List employeeIds = list.stream().map(item -> item.getEmployeeId()).distinct().collect(Collectors.toList()); List employeeByIds = new ArrayList<>(); List> partition = Lists.partition(employeeIds, 1000); for (List longs : partition) { diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 97093a2ec..ddf812e94 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -37,6 +37,7 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.siaccount.*; import com.engine.salary.enums.sicategory.DeleteTypeEnum; +import com.engine.salary.enums.sicategory.IsUseEnum; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.InsuranceExportMapper; @@ -1092,7 +1093,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { @Override public Map welfareColumns() { - List listAll = getICategoryMapper().listAll(); + List listAll = getICategoryMapper().listAll().stream().filter(f -> f.getIsUse().equals(IsUseEnum.START.getValue())).collect(Collectors.toList()); List list = new ArrayList<>(); if (CollectionUtils.isNotEmpty(listAll)) { list.addAll(listAll); @@ -1543,12 +1544,18 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { excelComments.add(errorMessageMap); } - if (!checkBillMonth(billMonth)) { + if (billMonth.length() < 7 || !SalaryDateUtil.checkYearMonth(billMonth.substring(0, 7))) { isError = true; Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(100579, "璐﹀崟鏈堜唤杈撳叆鏈夎锛岃鍙傜収鈥2022-09鈥濊繖绉嶆牸寮忚繘琛屾鏌")); excelComments.add(errorMessageMap); } + if (headers.contains("琛ョ即鏈堜唤") && (supplementaryMonth.length() < 7 || !SalaryDateUtil.checkYearMonth(supplementaryMonth.substring(0, 7)))) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(0, "琛ョ即鏈堜唤杈撳叆鏈夎锛岃鍙傜収鈥2022-09鈥濊繖绉嶆牸寮忚繘琛屾鏌")); + excelComments.add(errorMessageMap); + } //閬嶅巻琛ㄥご for (int j = 0; j < headers.size(); j++) { @@ -1610,9 +1617,9 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //鏍规嵁鍛樺伐id銆佷釜绋庢墸缂翠箟鍔′汉id銆佽处鍗曟湀浠芥煡璇 //鏍规嵁琛ㄥご瀛楁鏉ュ尯鍒嗘甯哥即绾冲拰琛ョ即涓ょ被鏁版嵁 if (!headers.contains("琛ョ即鏈堜唤")) { - list = getInsuranceAccountDetailMapper().queryNormalList(billMonth, paymentOrganization, employeeIds.get(0)); + list = getInsuranceAccountDetailMapper().queryNormalList(billMonth.substring(0, 7), paymentOrganization, employeeIds.get(0)); } else { - list = getInsuranceAccountDetailMapper().querySupplementList(billMonth, paymentOrganization, employeeIds.get(0), supplementaryMonth); + list = getInsuranceAccountDetailMapper().querySupplementList(billMonth.substring(0, 7), paymentOrganization, employeeIds.get(0), supplementaryMonth.substring(0, 7)); } if (list.isEmpty()) { @@ -1972,7 +1979,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } if (!StringUtils.isEmpty(baseMap.getOrDefault("璐﹀崟鏈堜唤", "").toString())) { - insuranceAccountDetailPO.setBillMonth(baseMap.get("璐﹀崟鏈堜唤").toString()); + insuranceAccountDetailPO.setBillMonth(baseMap.get("璐﹀崟鏈堜唤").toString().substring(0, 7)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("绀句繚鍚堣", "").toString())) { @@ -2006,7 +2013,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //濡傛灉瀵煎叆鐨勬椂琛ョ即鏁版嵁锛岃繕浼氬寘鍚ˉ缂存湀浠 if (!StringUtils.isEmpty(baseMap.getOrDefault("琛ョ即鏈堜唤", "").toString())) { - insuranceAccountDetailPO.setSupplementaryMonth(baseMap.get("琛ョ即鏈堜唤").toString()); + insuranceAccountDetailPO.setSupplementaryMonth(baseMap.get("琛ョ即鏈堜唤").toString().substring(0, 7)); } insuranceAccountDetailPO.setUpdateTime(new Date()); @@ -2381,7 +2388,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { getExcelInsuranceDetailMapper().batchDelByIds(idList); } //鏂板 - getExcelInsuranceDetailMapper().batchSave(addCompareList); + List> partition = Lists.partition((List) addCompareList, 20); + partition.forEach(getExcelInsuranceDetailMapper()::batchSave); + +// getExcelInsuranceDetailMapper().batchSave(addCompareList); apidatas.put("successCount", successCount); apidatas.put("errorCount", failCount); @@ -2992,7 +3002,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { excelComments.add(errorMessageMap); } - if (!checkBillMonth(billMonth)) { + if (billMonth.length() < 7 || !SalaryDateUtil.checkYearMonth(billMonth.substring(0, 7))) { isError = true; Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", row + SalaryI18nUtil.getI18nLabel(100579, "璐﹀崟鏈堜唤杈撳叆鏈夎锛岃鍙傜収鈥2022-09鈥濊繖绉嶆牸寮忚繘琛屾鏌")); @@ -3067,7 +3077,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { list = getInsuranceAccountDetailMapper().queryBalanceList(InsuranceAccountDetailPO.builder() .employeeId(employeeId) .paymentOrganization(paymentOrganization) - .billMonth(billMonth) + .billMonth(billMonth.substring(0, 7)) .build()); if (list.isEmpty()) { @@ -3342,7 +3352,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { InsuranceAccountDetailPO insuranceAccountDetailPO = new InsuranceAccountDetailPO(); insuranceAccountDetailPO.setId(IdGenerator.generate()); insuranceAccountDetailPO.setEmployeeId(employeeId); - insuranceAccountDetailPO.setBillMonth(billMonth); + insuranceAccountDetailPO.setBillMonth(billMonth.substring(0, 7)); insuranceAccountDetailPO.setBillStatus(BillStatusEnum.NOT_ARCHIVED.getValue()); insuranceAccountDetailPO.setPaymentStatus(PaymentStatusEnum.BALANCE.getValue()); insuranceAccountDetailPO.setResourceFrom(ResourceFromEnum.IMPORT.getValue()); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 3ea100d50..10f674526 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -43,6 +43,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; +import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; @@ -58,6 +59,9 @@ import java.util.stream.Collectors; **/ @Slf4j public class SIArchivesServiceImpl extends Service implements SIArchivesService { + private final BaseBean baseBean = new BaseBean(); + + private final Boolean isLog = "true".equals(baseBean.getPropValue("hrmSalary", "log")); private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); @@ -244,26 +248,27 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Transactional(rollbackFor = Exception.class) @Override public void handleChangeData(long currentEmployeeId) { - Util_DataCache.setObjVal("welfareChangeSign", "1"); - log.info("绂忓埄妗f涓閲忔暟鎹鐞嗛昏緫寮濮嬶細"); - // 鎵鏈夊閲忎汉鍛樺垪琛 - List taxAgentEmpChangeList = getTaxAgentEmpChangeService(user).listAllByModule(TaxAgentEmpChangeModuleEnum.INSURANCE_ARCHIVE); - log.info("寰呭鐞嗙殑绂忓埄妗f澧為噺鏁版嵁鏁伴噺 {}锛", taxAgentEmpChangeList.size()); - if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { - Util_DataCache.setObjVal("welfareChangeSign", "0"); - return; - } - // 褰撳墠鍙互绠¤緰鐨勪汉鍛 - Collection taxAgentList = new ArrayList<>(); - if (currentEmployeeId != 1L) { - taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - Collection finalTaxAgentList = taxAgentList; - taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); + try { + Util_DataCache.setObjVal("welfareChangeSign", "1"); + log.info("绂忓埄妗f涓閲忔暟鎹鐞嗛昏緫寮濮嬶細"); + // 鎵鏈夊閲忎汉鍛樺垪琛 + List taxAgentEmpChangeList = getTaxAgentEmpChangeService(user).listAllByModule(TaxAgentEmpChangeModuleEnum.INSURANCE_ARCHIVE); + log.info("寰呭鐞嗙殑绂忓埄妗f澧為噺鏁版嵁鏁伴噺 {}锛", taxAgentEmpChangeList.size()); if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { Util_DataCache.setObjVal("welfareChangeSign", "0"); return; } - } + // 褰撳墠鍙互绠¤緰鐨勪汉鍛 + Collection taxAgentList = new ArrayList<>(); + if (currentEmployeeId != 1L) { + taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); + Collection finalTaxAgentList = taxAgentList; + taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { + Util_DataCache.setObjVal("welfareChangeSign", "0"); + return; + } + } // Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); // log.info("褰撳墠鍙互绠¤緰鐨勪釜绋庢墸缂翠箟鍔′汉鏁伴噺 {}锛", taxAgentList.size()); // taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> taxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); @@ -271,85 +276,98 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService // Util_DataCache.setObjVal("welfareChangeSign", "0"); // return; // } - log.info("鏍规嵁褰撳墠鍙互绠¤緰鐨勪釜绋庢墸缂翠箟鍔′汉绛涢夊嚭鐨勫彲澶勭悊澧為噺鏁版嵁鏁伴噺 {}锛", taxAgentEmpChangeList.size()); - // 鎵鏈夌鍒╂。妗堝熀纭淇℃伅鏁版嵁 - List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); - log.info("褰撳墠鏁版嵁搴撲腑鎵鏈夌鍒╂。妗堝熀纭淇℃伅鏁版嵁鏁伴噺 {}锛", baseInfoPOList.size()); - StopWatch sw = new StopWatch(); - sw.start("灏嗗閲忔暟鎹繘涓姝ュ鐞嗕负鏂板銆佹洿鏂颁袱绫绘暟鎹"); - InsuranceArchivesBaseInfoBO.ChangeData changeData = InsuranceArchivesBaseInfoBO.buildChangeData(taxAgentEmpChangeList, baseInfoPOList, currentEmployeeId); - sw.stop(); - // 鎵归噺淇敼绂忓埄妗f - if (CollectionUtils.isNotEmpty(changeData.getBaseInfoUpdateTodoList())) { - log.info("澧為噺鏁版嵁涓緟鏇存柊鐨勬暟鎹暟閲 {}锛", changeData.getBaseInfoUpdateTodoList().size()); - //瀵逛簬鍗冲皢璋冩暣涓衡滃緟鍑忓憳鈥濈殑鏁版嵁锛屾洿鏂扮ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗堢殑鍋滄缂寸撼鏃堕棿 - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM"); - String today = simpleDateFormat.format(new Date()); - sw.start("鐢熸垚澧為噺鏁版嵁涓嵆灏嗙疆涓衡滃緟鍑忓憳鈥濈殑鏁版嵁"); - List toStayDelList = changeData.getBaseInfoUpdateTodoList().stream() - .filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())) - .collect(Collectors.toList()); - if (toStayDelList.size() > 0) { - List> partitionUpdateEndTime = Lists.partition(toStayDelList, 100); - partitionUpdateEndTime.forEach(part->{ - List socialIds = part.stream().map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); - List fundIds = part.stream().map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); - List otherIds = part.stream().map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); - - getSocialSchemeMapper().batchUpdateEndTime(socialIds, today); - getFundSchemeMapper().batchUpdateEndTime(fundIds, today); - getOtherSchemeMapper().batchUpdateEndTime(otherIds, today); - }); - - } + log.info("鏍规嵁褰撳墠鍙互绠¤緰鐨勪釜绋庢墸缂翠箟鍔′汉绛涢夊嚭鐨勫彲澶勭悊澧為噺鏁版嵁鏁伴噺 {}锛", taxAgentEmpChangeList.size()); + // 鎵鏈夌鍒╂。妗堝熀纭淇℃伅鏁版嵁 + List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); + log.info("褰撳墠鏁版嵁搴撲腑鎵鏈夌鍒╂。妗堝熀纭淇℃伅鏁版嵁鏁伴噺 {}锛", baseInfoPOList.size()); + StopWatch sw = new StopWatch(); + sw.start("灏嗗閲忔暟鎹繘涓姝ュ鐞嗕负鏂板銆佹洿鏂颁袱绫绘暟鎹"); + InsuranceArchivesBaseInfoBO.ChangeData changeData = InsuranceArchivesBaseInfoBO.buildChangeData(taxAgentEmpChangeList, baseInfoPOList, currentEmployeeId); sw.stop(); - - sw.start("鐢熸垚澧為噺鏁版嵁涓嵆灏嗙疆涓衡滈昏緫鍒犻櫎鈥濈殑鏁版嵁"); - //瀵逛簬閫昏緫鍒犻櫎鐨勬暟鎹紝鍚屾牱閫昏緫鍒犻櫎鐩稿叧鐨勭ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗 - List delList = changeData.getBaseInfoUpdateTodoList().stream() - .filter(f -> f.getDeleteType().equals(DeleteTypeEnum.DELETED.getValue())) - .collect(Collectors.toList()); - if (delList.size() > 0) { - for (InsuranceArchivesBaseInfoPO po : delList) { - getSocialSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesSocialSchemePO.builder() - .employeeId(po.getEmployeeId()) - .paymentOrganization(po.getPaymentOrganization()) - .build()); - getFundSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesFundSchemePO.builder() - .employeeId(po.getEmployeeId()) - .paymentOrganization(po.getPaymentOrganization()) - .build()); - getOtherSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesOtherSchemePO.builder() - .employeeId(po.getEmployeeId()) - .paymentOrganization(po.getPaymentOrganization()) - .build()); + // 鎵归噺淇敼绂忓埄妗f + if (CollectionUtils.isNotEmpty(changeData.getBaseInfoUpdateTodoList())) { + log.info("澧為噺鏁版嵁涓緟鏇存柊鐨勬暟鎹暟閲 {}锛", changeData.getBaseInfoUpdateTodoList().size()); + //瀵逛簬鍗冲皢璋冩暣涓衡滃緟鍑忓憳鈥濈殑鏁版嵁锛屾洿鏂扮ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗堢殑鍋滄缂寸撼鏃堕棿 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM"); + String today = simpleDateFormat.format(new Date()); + sw.start("鐢熸垚澧為噺鏁版嵁涓嵆灏嗙疆涓衡滃緟鍑忓憳鈥濈殑鏁版嵁"); + List toStayDelList = changeData.getBaseInfoUpdateTodoList().stream() + .filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())) + .collect(Collectors.toList()); + if (isLog) { + log.info("绂忓埄妗f-寰呭噺鍛樻槑缁:{}", toStayDelList); } + if (toStayDelList.size() > 0) { + List> partitionUpdateEndTime = Lists.partition(toStayDelList, 100); + partitionUpdateEndTime.forEach(part->{ + List socialIds = part.stream().map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); + List fundIds = part.stream().map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); + List otherIds = part.stream().map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); + + getSocialSchemeMapper().batchUpdateEndTime(socialIds, today); + getFundSchemeMapper().batchUpdateEndTime(fundIds, today); + getOtherSchemeMapper().batchUpdateEndTime(otherIds, today); + }); + + } + sw.stop(); + + sw.start("鐢熸垚澧為噺鏁版嵁涓嵆灏嗙疆涓衡滈昏緫鍒犻櫎鈥濈殑鏁版嵁"); + //瀵逛簬閫昏緫鍒犻櫎鐨勬暟鎹紝鍚屾牱閫昏緫鍒犻櫎鐩稿叧鐨勭ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗 + List delList = changeData.getBaseInfoUpdateTodoList().stream() + .filter(f -> f.getDeleteType().equals(DeleteTypeEnum.DELETED.getValue())) + .collect(Collectors.toList()); + if (isLog) { + log.info("绂忓埄妗f-閫昏緫鍒犻櫎鏄庣粏:{}", delList); + } + if (delList.size() > 0) { + for (InsuranceArchivesBaseInfoPO po : delList) { + getSocialSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesSocialSchemePO.builder() + .employeeId(po.getEmployeeId()) + .paymentOrganization(po.getPaymentOrganization()) + .build()); + getFundSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesFundSchemePO.builder() + .employeeId(po.getEmployeeId()) + .paymentOrganization(po.getPaymentOrganization()) + .build()); + getOtherSchemeMapper().deleteByEmployeeIdAndPayOrg(InsuranceArchivesOtherSchemePO.builder() + .employeeId(po.getEmployeeId()) + .paymentOrganization(po.getPaymentOrganization()) + .build()); + } + } + sw.stop(); + //淇敼绂忓埄妗f鍩虹淇℃伅 + sw.start("澧為噺鏁版嵁涓緟鏇存柊鏁版嵁鍏ュ簱"); + if (isLog) { + log.info("绂忓埄妗f-澧為噺鏁版嵁涓緟鏇存柊鏁版嵁鍏ュ簱鏄庣粏:{}", changeData.getBaseInfoUpdateTodoList()); + } + List> partitionUpdateBase = Lists.partition(changeData.getBaseInfoUpdateTodoList(), 100); + partitionUpdateBase.forEach(part-> getInsuranceBaseInfoMapper().batchUpdate(part)); + sw.stop(); + log.info("澧為噺鏁版嵁涓緟鏇存柊鐨勬暟鎹鐞嗗畬鎴愶紒"); + } + + sw.start("澶勭悊澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹"); + // 鎵归噺鏂板绂忓埄妗f + if (CollectionUtils.isNotEmpty(changeData.getBaseInfoAddTodoList())) { + log.info("澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹暟閲 {}锛", changeData.getBaseInfoAddTodoList().size()); + //鏂板绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗堛佺鍒╂。妗堝熀纭淇℃伅 + addNewInsuranceBaseInfo(changeData.getBaseInfoAddTodoList(), currentEmployeeId); + log.info("澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹鐞嗗畬鎴愶紒"); } sw.stop(); - //淇敼绂忓埄妗f鍩虹淇℃伅 - sw.start("澧為噺鏁版嵁涓緟鏇存柊鏁版嵁鍏ュ簱"); - List> partitionUpdateBase = Lists.partition(changeData.getBaseInfoUpdateTodoList(), 100); - partitionUpdateBase.forEach(part-> getInsuranceBaseInfoMapper().batchUpdate(part)); - sw.stop(); - log.info("澧為噺鏁版嵁涓緟鏇存柊鐨勬暟鎹鐞嗗畬鎴愶紒"); - } - sw.start("澶勭悊澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹"); - // 鎵归噺鏂板绂忓埄妗f - if (CollectionUtils.isNotEmpty(changeData.getBaseInfoAddTodoList())) { - log.info("澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹暟閲 {}锛", changeData.getBaseInfoAddTodoList().size()); - //鏂板绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗堛佺鍒╂。妗堝熀纭淇℃伅 - addNewInsuranceBaseInfo(changeData.getBaseInfoAddTodoList(), currentEmployeeId); - log.info("澧為噺鏁版嵁涓緟鏂板鐨勬暟鎹鐞嗗畬鎴愶紒"); + // 鍒犻櫎澧為噺鏁版嵁 + if (CollectionUtils.isNotEmpty(changeData.getChangeIds())) { + getTaxAgentEmpChangeService(user).deleleByIds(changeData.getChangeIds()); + } + log.info("鍚勬搷浣滆鏃 {}", sw.prettyPrint()); + Util_DataCache.setObjVal("welfareChangeSign", "0"); + } catch (Exception e) { + log.info("绂忓埄妗f-澧為噺鏁版嵁澶勭悊鍑洪敊锛歿}", e.getMessage(), e); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "绂忓埄妗f-澧為噺鏁版嵁澶勭悊鍑洪敊")); } - sw.stop(); - - // 鍒犻櫎澧為噺鏁版嵁 - if (CollectionUtils.isNotEmpty(changeData.getChangeIds())) { - getTaxAgentEmpChangeService(user).deleleByIds(changeData.getChangeIds()); - } - log.info("鍚勬搷浣滆鏃 {}", sw.prettyPrint()); - Util_DataCache.setObjVal("welfareChangeSign", "0"); } /** @@ -403,101 +421,126 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //鏂板绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗堛佺鍒╂。妗堝熀纭淇℃伅 private List addNewInsuranceBaseInfo(List baseInfoPOList, Long currentEmployeeId) { - List socialList = new ArrayList<>(); - List fundList = new ArrayList<>(); - List otherList = new ArrayList<>(); - for (InsuranceArchivesBaseInfoPO baseInfoPO : baseInfoPOList) { - InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO = new InsuranceArchivesSocialSchemePO(); - insuranceArchivesSocialSchemePO.setTenantKey(""); - insuranceArchivesSocialSchemePO.setWelfareType(WelfareTypeEnum.SOCIAL_SECURITY.getValue()); - insuranceArchivesSocialSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); - insuranceArchivesSocialSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); - insuranceArchivesSocialSchemePO.setCreator(currentEmployeeId); - insuranceArchivesSocialSchemePO.setCreateTime(new Date()); - insuranceArchivesSocialSchemePO.setUpdateTime(new Date()); - insuranceArchivesSocialSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); - insuranceArchivesSocialSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); - socialList.add(insuranceArchivesSocialSchemePO); + try { + List socialList = new ArrayList<>(); + List fundList = new ArrayList<>(); + List otherList = new ArrayList<>(); + for (InsuranceArchivesBaseInfoPO baseInfoPO : baseInfoPOList) { + InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO = new InsuranceArchivesSocialSchemePO(); + insuranceArchivesSocialSchemePO.setTenantKey(""); + insuranceArchivesSocialSchemePO.setWelfareType(WelfareTypeEnum.SOCIAL_SECURITY.getValue()); + insuranceArchivesSocialSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); + insuranceArchivesSocialSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); + insuranceArchivesSocialSchemePO.setCreator(currentEmployeeId); + insuranceArchivesSocialSchemePO.setCreateTime(new Date()); + insuranceArchivesSocialSchemePO.setUpdateTime(new Date()); + insuranceArchivesSocialSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + insuranceArchivesSocialSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); + socialList.add(insuranceArchivesSocialSchemePO); - InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = new InsuranceArchivesFundSchemePO(); - insuranceArchivesFundSchemePO.setTenantKey(""); - insuranceArchivesFundSchemePO.setWelfareType(WelfareTypeEnum.ACCUMULATION_FUND.getValue()); - insuranceArchivesFundSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); - insuranceArchivesFundSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); - insuranceArchivesFundSchemePO.setCreator(currentEmployeeId); - insuranceArchivesFundSchemePO.setCreateTime(new Date()); - insuranceArchivesFundSchemePO.setUpdateTime(new Date()); - insuranceArchivesFundSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); - insuranceArchivesFundSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); - fundList.add(insuranceArchivesFundSchemePO); + InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = new InsuranceArchivesFundSchemePO(); + insuranceArchivesFundSchemePO.setTenantKey(""); + insuranceArchivesFundSchemePO.setWelfareType(WelfareTypeEnum.ACCUMULATION_FUND.getValue()); + insuranceArchivesFundSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); + insuranceArchivesFundSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); + insuranceArchivesFundSchemePO.setCreator(currentEmployeeId); + insuranceArchivesFundSchemePO.setCreateTime(new Date()); + insuranceArchivesFundSchemePO.setUpdateTime(new Date()); + insuranceArchivesFundSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + insuranceArchivesFundSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); + fundList.add(insuranceArchivesFundSchemePO); - InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = new InsuranceArchivesOtherSchemePO(); - insuranceArchivesOtherSchemePO.setTenantKey(""); - insuranceArchivesOtherSchemePO.setWelfareType(WelfareTypeEnum.OTHER.getValue()); - insuranceArchivesOtherSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); - insuranceArchivesOtherSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); - insuranceArchivesOtherSchemePO.setCreator(currentEmployeeId); - insuranceArchivesOtherSchemePO.setCreateTime(new Date()); - insuranceArchivesOtherSchemePO.setUpdateTime(new Date()); - insuranceArchivesOtherSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); - insuranceArchivesOtherSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); - otherList.add(insuranceArchivesOtherSchemePO); + InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = new InsuranceArchivesOtherSchemePO(); + insuranceArchivesOtherSchemePO.setTenantKey(""); + insuranceArchivesOtherSchemePO.setWelfareType(WelfareTypeEnum.OTHER.getValue()); + insuranceArchivesOtherSchemePO.setPaymentOrganization(baseInfoPO.getPaymentOrganization()); + insuranceArchivesOtherSchemePO.setNonPayment(NonPaymentEnum.YES.getValue()); + insuranceArchivesOtherSchemePO.setCreator(currentEmployeeId); + insuranceArchivesOtherSchemePO.setCreateTime(new Date()); + insuranceArchivesOtherSchemePO.setUpdateTime(new Date()); + insuranceArchivesOtherSchemePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + insuranceArchivesOtherSchemePO.setEmployeeId(baseInfoPO.getEmployeeId()); + otherList.add(insuranceArchivesOtherSchemePO); - } - //瀵煎叆绀句繚妗f - if (CollectionUtils.isNotEmpty(socialList)) { - //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f - socialList.forEach(getSocialSchemeMapper()::deleteByEmployeeIdAndPayOrg); - - List> partition = Lists.partition(socialList, 100); - partition.forEach(getSocialSchemeMapper()::batchSave); - } - //瀵煎叆鍏Н閲戞。妗 - if (CollectionUtils.isNotEmpty(fundList)) { - - //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f - fundList.forEach(getFundSchemeMapper()::deleteByEmployeeIdAndPayOrg); - - List> partition = Lists.partition(fundList, 100); - partition.forEach(getFundSchemeMapper()::batchSave); - } - //瀵煎叆鍏朵粬绂忓埄妗f - if (CollectionUtils.isNotEmpty(otherList)) { - //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f - otherList.forEach(getOtherSchemeMapper()::deleteByEmployeeIdAndPayOrg); - - List> partition = Lists.partition(otherList, 100); - partition.forEach(getOtherSchemeMapper()::batchSave); - } - //瀵煎叆绂忓埄妗f鍩虹淇℃伅 - if (CollectionUtils.isNotEmpty(baseInfoPOList)) { - //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f - baseInfoPOList.forEach(getInsuranceBaseInfoMapper()::deleteByEmployeeIdAndPayOrg); -// //鍒嗘壒鎵归噺鍒犻櫎 - List baseInfoEmployeeIds = baseInfoPOList.stream().map(InsuranceArchivesBaseInfoPO::getEmployeeId).collect(Collectors.toList()); - - //鏌ヨ鐩爣浜哄憳鐨勫墿浣欑殑绂忓埄妗f鍩虹淇℃伅锛堢ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗坕d锛 - List moreBaseInfoPOS = new ArrayList<>(); - - List> partitionInfo = Lists.partition((List) baseInfoEmployeeIds, 1000); - partitionInfo.forEach(part -> moreBaseInfoPOS.addAll( - getInsuranceBaseInfoMapper().getInsuranceBaseInfoListByInsuranceDetail(part))); - - List newInsuranceArchivesBaseInfoList = new ArrayList<>(); - //璁剧疆绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗坕d - for (InsuranceArchivesBaseInfoPO po : baseInfoPOList) { - InsuranceArchivesBaseInfoPO moreBaseInfo = moreBaseInfoPOS.stream().filter(s -> Objects.equals(s.getEmployeeId(), po.getEmployeeId()) && Objects.equals(s.getPaymentOrganization(), po.getPaymentOrganization())).findFirst().orElse(null); - po.setSocialArchivesId(moreBaseInfo.getSocialArchivesId()); - po.setFundArchivesId(moreBaseInfo.getFundArchivesId()); - po.setOtherArchivesId(moreBaseInfo.getOtherArchivesId()); - newInsuranceArchivesBaseInfoList.add(po); } - //鍒嗘壒鎵归噺鍏ュ簱 - List> partition = Lists.partition(newInsuranceArchivesBaseInfoList, 100); - partition.forEach(getInsuranceBaseInfoMapper()::batchSave); - } + //瀵煎叆绀句繚妗f + if (CollectionUtils.isNotEmpty(socialList)) { + log.info("鏂板绀句繚妗f鏁伴噺锛歿}", socialList.size()); + //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f + socialList.forEach(getSocialSchemeMapper()::deleteByEmployeeIdAndPayOrg); + log.info("鍒犻櫎鍘嗗彶绀句繚妗f"); + if (isLog) { + log.info("鏂板绀句繚妗f鏄庣粏:{}", socialList); + } + List> partition = Lists.partition(socialList, 100); + partition.forEach(getSocialSchemeMapper()::batchSave); + log.info("鏂板绀句繚妗f鎴愬姛"); + } + //瀵煎叆鍏Н閲戞。妗 + if (CollectionUtils.isNotEmpty(fundList)) { + log.info("鏂板鍏Н閲戞。妗堟暟閲忥細{}", fundList.size()); + //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f + fundList.forEach(getFundSchemeMapper()::deleteByEmployeeIdAndPayOrg); + log.info("鍒犻櫎鍘嗗彶鍏Н閲戞。妗"); + if (isLog) { + log.info("鏂板鍏Н閲戞。妗堟槑缁:{}", fundList); + } + List> partition = Lists.partition(fundList, 100); + partition.forEach(getFundSchemeMapper()::batchSave); + log.info("鏂板鍏Н閲戞。妗堟垚鍔"); + } + //瀵煎叆鍏朵粬绂忓埄妗f + if (CollectionUtils.isNotEmpty(otherList)) { + log.info("鏂板鍏朵粬绂忓埄妗f鏁伴噺锛歿}", otherList.size()); + //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f + otherList.forEach(getOtherSchemeMapper()::deleteByEmployeeIdAndPayOrg); + log.info("鍒犻櫎鍘嗗彶鍏朵粬绂忓埄妗f"); + if (isLog) { + log.info("鏂板鍏朵粬绂忓埄妗f鏄庣粏:{}", otherList); + } + List> partition = Lists.partition(otherList, 100); + partition.forEach(getOtherSchemeMapper()::batchSave); + log.info("鏂板鍏朵粬绂忓埄妗f鎴愬姛"); + } + //瀵煎叆绂忓埄妗f鍩虹淇℃伅 + if (CollectionUtils.isNotEmpty(baseInfoPOList)) { + //鏍规嵁浜哄憳id鍜屼釜绋庢墸缂翠箟鍔′汉id鍒犻櫎瀵瑰簲妗f + baseInfoPOList.forEach(getInsuranceBaseInfoMapper()::deleteByEmployeeIdAndPayOrg); + log.info("鍒犻櫎鍘嗗彶绂忓埄妗f鍩虹淇℃伅"); + // //鍒嗘壒鎵归噺鍒犻櫎 + List baseInfoEmployeeIds = baseInfoPOList.stream().map(InsuranceArchivesBaseInfoPO::getEmployeeId).collect(Collectors.toList()); - return baseInfoPOList; + //鏌ヨ鐩爣浜哄憳鐨勫墿浣欑殑绂忓埄妗f鍩虹淇℃伅锛堢ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗坕d锛 + List moreBaseInfoPOS = new ArrayList<>(); + log.info("鏌ヨ鐩爣浜哄憳鐨勫墿浣欑殑绂忓埄妗f鍩虹淇℃伅锛堢ぞ淇濄佸叕绉噾銆佸叾浠栫鍒╂。妗坕d锛"); + List> partitionInfo = Lists.partition((List) baseInfoEmployeeIds, 1000); + partitionInfo.forEach(part -> moreBaseInfoPOS.addAll( + getInsuranceBaseInfoMapper().getInsuranceBaseInfoListByInsuranceDetail(part))); + + List newInsuranceArchivesBaseInfoList = new ArrayList<>(); + //璁剧疆绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗坕d + log.info("璁剧疆绀句繚銆佸叕绉噾銆佸叾浠栫鍒╂。妗坕d"); + for (InsuranceArchivesBaseInfoPO po : baseInfoPOList) { + InsuranceArchivesBaseInfoPO moreBaseInfo = moreBaseInfoPOS.stream().filter(s -> Objects.equals(s.getEmployeeId(), po.getEmployeeId()) && Objects.equals(s.getPaymentOrganization(), po.getPaymentOrganization())).findFirst().orElse(null); + po.setSocialArchivesId(moreBaseInfo.getSocialArchivesId()); + po.setFundArchivesId(moreBaseInfo.getFundArchivesId()); + po.setOtherArchivesId(moreBaseInfo.getOtherArchivesId()); + newInsuranceArchivesBaseInfoList.add(po); + } + log.info("绂忓埄妗f鍩虹淇℃伅鍒嗘壒鎵归噺鍏ュ簱锛屽叆搴撴暟閲忥細{}", newInsuranceArchivesBaseInfoList.size()); + //鍒嗘壒鎵归噺鍏ュ簱 + if (isLog) { + log.info("鏂板绂忓埄妗f鍩虹淇℃伅鏄庣粏:{}", newInsuranceArchivesBaseInfoList); + } + List> partition = Lists.partition(newInsuranceArchivesBaseInfoList, 100); + partition.forEach(getInsuranceBaseInfoMapper()::batchSave); + } + + return baseInfoPOList; + } catch (Exception e) { + log.info("鏂板绂忓埄妗f鍑洪敊锛歿}", e.getMessage(), e); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "绂忓埄妗f鏂板澶辫触")); + } } /** * 鍒嗘壒鏇存柊绂忓埄妗f鍩虹淇℃伅鐨剅unStatus @@ -615,7 +658,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //鑾峰彇鎵鏈夌鍒╂。妗堝熀纭淇℃伅 List archiveListDTOS = getInsuranceBaseInfoMapper().listAll(); - list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getPaymentOrganization())).collect(Collectors.toList()); + list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getPaymentOrganization()) && !Objects.equals(dto.getEmployeeType(), 1)).collect(Collectors.toList()); Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); //涓嶆槸绠$悊鍛樼湅涓嶅埌鏁版嵁锛岃繑鍥炵┖ @@ -624,7 +667,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } } else { - list = getInsuranceBaseInfoMapper().listAll(); + list = getInsuranceBaseInfoMapper().listAll().stream().filter(dto -> !Objects.equals(dto.getEmployeeType(), 1)).collect(Collectors.toList());; } diff --git a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java index ab02e8a6f..5cf300cf5 100644 --- a/src/com/engine/salary/service/impl/SICategoryServiceImpl.java +++ b/src/com/engine/salary/service/impl/SICategoryServiceImpl.java @@ -1,10 +1,13 @@ package com.engine.salary.service.impl; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cmd.sicategory.SICategoryGetFormCmd; import com.engine.salary.cmd.sicategory.SICategoryInsertCmd; import com.engine.salary.cmd.sicategory.SICategoryUpdateCmd; import com.engine.salary.cmd.sicategory.SICategoryUpdateStatusByIdCmd; +import com.engine.salary.encrypt.EncryptUtil; +import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.sicategory.dto.ICategoryDTO; import com.engine.salary.entity.sicategory.dto.ICategoryFormDTO; import com.engine.salary.entity.sicategory.dto.ICategoryListDTO; @@ -14,16 +17,20 @@ import com.engine.salary.enums.sicategory.DataTypeEnum; import com.engine.salary.enums.sicategory.PaymentScopeEnum; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; import com.engine.salary.mapper.sicategory.ICategoryMapper; +import com.engine.salary.service.RecordsBuildService; import com.engine.salary.service.SICategoryService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryEnumUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; @@ -40,6 +47,15 @@ public class SICategoryServiceImpl extends Service implements SICategoryService return MapperProxyFactory.getProxy(ICategoryMapper.class); } + private InsuranceAccountDetailMapper getInsuranceAccountDetailMapper() { + return MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class); + } + + public RecordsBuildService getRecordsBuildService(User user) { + return ServiceUtil.getService(RecordsBuildServiceImpl.class, user); + } + + private EncryptUtil encryptUtil = new EncryptUtil(); @Override public Map getForm(Map params) { @@ -136,6 +152,78 @@ public class SICategoryServiceImpl extends Service implements SICategoryService return null; } + @Override + public Map updateCategoryNameAndPayScope(ICategoryFormDTO iCategoryFormDTO) { + ICategoryPO categoryPO = getICategoryMapper().getByIdAndDataType(iCategoryFormDTO.getId(), DataTypeEnum.CUSTOM.getValue()); + if(categoryPO == null){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鑷畾涔夌鍒╀笉瀛樺湪")); + } + // 鍒ゆ柇鏄惁鍚敤 + Integer isUse = categoryPO.getIsUse(); + if(isUse == 1){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "缂栬緫澶辫触锛岃鍏堝叧闂惎鐢ㄦ寜閽紒")); + } + // 鍒ゆ柇绂忓埄鍚嶇О鏄惁閲嶅 + List iCategoryPOS = getICategoryMapper().listByName(iCategoryFormDTO.getInsuranceName()); + iCategoryPOS = iCategoryPOS.stream().filter(f -> !f.getId().equals(iCategoryFormDTO.getId())).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(iCategoryPOS)){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "绂忓埄鍚嶇О涓嶈兘閲嶅")); + } + ICategoryPO iCategoryPO = ICategoryPO.builder().id(iCategoryFormDTO.getId()).insuranceName(iCategoryFormDTO.getInsuranceName()) + .paymentScope(SalaryEnumUtil.enumArrToString(iCategoryFormDTO.getPaymentScope())) + .updateTime(new Date()) + .build(); + getICategoryMapper().updateNameAndPayScopeById(iCategoryPO); + return null; + } + + @Override + public Map deleteCustomCategory(ICategoryFormDTO iCategoryFormDTO) { + ICategoryPO categoryPO = getICategoryMapper().getByIdAndDataType(iCategoryFormDTO.getId(), DataTypeEnum.CUSTOM.getValue()); + if(categoryPO == null){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鑷畾涔夌鍒╀笉瀛樺湪")); + } + // 鍒ゆ柇鏄惁鍚敤 + Integer isUse = categoryPO.getIsUse(); + if(isUse == 1){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎澶辫触锛岃鍏堝叧闂惎鐢ㄦ寜閽紒")); + } + // 鍒ゆ柇鑷畾涔夌鍒╅」鏄惁瀛樺湪鏍哥畻鏁版嵁 + //鑾峰彇鎵鏈夌鍒╂牳绠楁暟鎹 + List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().listAll(); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); + //鏁版嵁缁勮 + List> records = getRecordsBuildService(user).buildCommonRecords(insuranceAccountDetailPOS, null); + String welfareTypeName = ""; + switch (categoryPO.getWelfareType()) { + case 1: + welfareTypeName = "social"; + break; + case 2: + welfareTypeName = "fund"; + break; + case 3: + welfareTypeName = "other"; + break; + default: + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542456, "绂忓埄绫诲瀷涓嶅湪")); + } + String welfareNameStart = categoryPO.getId() + welfareTypeName; + //鏍¢獙绂忓埄椤规槸鍚﹀瓨鍦ㄦ牳绠楄褰 + records.forEach(f -> { + if (!Objects.isNull(f.get(welfareNameStart + "Per")) + || !Objects.isNull(f.get(welfareNameStart + "Com")) + || !Objects.isNull(f.get(welfareNameStart + "Base"))) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎澶辫触锛屽凡瀛樺湪绂忓埄鏍哥畻璁板綍")); + } + }); + + //鍒犻櫎鑷畾涔夌鍒╅」 + categoryPO.setUpdateTime(new Date()); + getICategoryMapper().deleteCustomCategoryById(categoryPO); + return null; + } + private ICategoryDTO convertICategoryPO2DTO(ICategoryPO iCategoryPO){ return ICategoryDTO.builder().id(iCategoryPO.getId()).insuranceName(iCategoryPO.getInsuranceName()) .welfareType(iCategoryPO.getWelfareType()) diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index ae330912a..add71efbd 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -166,16 +166,16 @@ public class SIExportServiceImpl extends Service implements SIExportService { accountExportPOS = getInsuranceExportMapper().exportAccount(paymentStatus, param); } - //杩囨护鍑虹鍒╂。妗堝熀纭淇℃伅琛ㄤ腑runStatus涓烘鍦ㄧ即绾冲拰寰呭噺鍛樼殑浜哄憳 - if (!paymentStatus.equals(PaymentStatusEnum.RECESSION.getValue())) { - List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); - List canAccountIds = baseInfoPOList.stream() - .filter(f->f.getPaymentOrganization().toString().equals(param.getPaymentOrganization()) - && (f.getRunStatus().equals(EmployeeStatusEnum.PAYING.getValue()) || f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue()))) - .map(InsuranceArchivesBaseInfoPO::getEmployeeId) - .collect(Collectors.toList()); - accountExportPOS = accountExportPOS.stream().filter(f -> canAccountIds.contains(f.getEmployeeId())).collect(Collectors.toList()); - } +// //杩囨护鍑虹鍒╂。妗堝熀纭淇℃伅琛ㄤ腑runStatus涓烘鍦ㄧ即绾冲拰寰呭噺鍛樼殑浜哄憳 +// if (!paymentStatus.equals(PaymentStatusEnum.RECESSION.getValue())) { +// List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); +// List canAccountIds = baseInfoPOList.stream() +// .filter(f->f.getPaymentOrganization().toString().equals(param.getPaymentOrganization()) +// && (f.getRunStatus().equals(EmployeeStatusEnum.PAYING.getValue()) || f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue()))) +// .map(InsuranceArchivesBaseInfoPO::getEmployeeId) +// .collect(Collectors.toList()); +// accountExportPOS = accountExportPOS.stream().filter(f -> canAccountIds.contains(f.getEmployeeId())).collect(Collectors.toList()); +// } encryptUtil.decryptList(accountExportPOS, AccountExportPO.class); List columns = new ArrayList<>(); @@ -507,22 +507,30 @@ public class SIExportServiceImpl extends Service implements SIExportService { list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(100379, "閫宸湀浠"), "supplementaryMonth")); } list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91325, "涓◣鎵g即涔夊姟浜"), "socialPayOrg")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91324, "绀句繚璐﹀彿"), "socialAccount")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91323, "绀句繚鏂规鍚嶇О"), "socialSchemeName")); + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91324, "绀句繚璐﹀彿"), "socialAccount")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91323, "绀句繚鏂规鍚嶇О"), "socialSchemeName")); + } + //缁勮绀句繚鍩烘暟 columns.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px", k, v)); }); -// list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91488, "鍏Н閲戠即绾崇粍缁"), "fundPayOrg")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91486, "鍏Н閲戣处鍙"), "fundAccount")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91485, "鍏Н閲戞柟妗堝悕绉"), "fundSchemeName")); + + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91486, "鍏Н閲戣处鍙"), "fundAccount")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91485, "鍏Н閲戞柟妗堝悕绉"), "fundSchemeName")); + } + //缁勮鍏Н閲戝熀鏁 columns.get(WelfareTypeEnum.ACCUMULATION_FUND.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px", k, v)); }); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91487, "琛ュ厖鍏Н閲戣处鍙"), "supplementFundAccount")); -// list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91497, "鍏朵粬绂忓埄缂寸撼缁勭粐"), "otherPayOrg")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91496, "鍏朵粬绂忓埄鏂规鍚嶇О"), "otherSchemeName")); + if (!paymentStatus.equals(PaymentStatusEnum.BALANCE.getValue())) { + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91487, "琛ュ厖鍏Н閲戣处鍙"), "supplementFundAccount")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91496, "鍏朵粬绂忓埄鏂规鍚嶇О"), "otherSchemeName")); + } + columns.get(WelfareTypeEnum.OTHER.getValue()).forEach((k, v) -> { list.add(new WeaTableColumn("150px", k, v)); }); diff --git a/src/com/engine/salary/service/impl/SIImportServiceImpl.java b/src/com/engine/salary/service/impl/SIImportServiceImpl.java index ecd8f016a..8fc7eccdb 100644 --- a/src/com/engine/salary/service/impl/SIImportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIImportServiceImpl.java @@ -77,7 +77,9 @@ public class SIImportServiceImpl extends Service implements SIImportService { //宸ヤ綔绨垮悕绉 String sheetName; //琛ㄥご - if (param.getRunStatuses().size() > 0) { + if (param.isExtWelArchiveList()) { + sheetName = SalaryI18nUtil.getI18nLabel(542679, "闈炵郴缁熶汉鍛"); + } else if (param.getRunStatuses().size() > 0) { if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { sheetName = SalaryI18nUtil.getI18nLabel(85368, "绀句繚绂忓埄妗f瀵煎叆妯℃澘" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel()); } else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) { @@ -93,6 +95,7 @@ public class SIImportServiceImpl extends Service implements SIImportService { sheetName = SalaryI18nUtil.getI18nLabel(85368, "绀句繚绂忓埄妗f瀵煎叆妯℃澘"); } + List headers = buildHeader(); InsuranceArchivesListParam request = InsuranceArchivesListParam.builder().build(); if (param.getHireDate() != null && param.getHireDate().length == 2) { @@ -130,7 +133,11 @@ public class SIImportServiceImpl extends Service implements SIImportService { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); List page = new ArrayList<>(); - page = socialSchemeMapper.queryEmployeeList(param); + if (param.isExtWelArchiveList()) { + page = socialSchemeMapper.queryExtEmployeeList(param); + } else { + page = socialSchemeMapper.queryEmployeeList(param); + } PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), page, InsuranceArchivesEmployeePO.class); int total = (int)pageInfo.getTotal(); @@ -171,9 +178,9 @@ public class SIImportServiceImpl extends Service implements SIImportService { // 4.娉ㄩ噴 List excelComments = Lists.newArrayList(); - excelComments.add(new ExcelComment(0, 0, 3, 2, SalaryI18nUtil.getI18nLabel(100344, "蹇呭~"))); - excelComments.add(new ExcelComment(5, 0, 6, 2, SalaryI18nUtil.getI18nLabel(100344, "蹇呭~"))); - excelComments.add(new ExcelComment(6, 0, 7, 2, SalaryI18nUtil.getI18nLabel(100344, "绀句繚,鍏Н閲,鍏朵粬绂忓埄鏂规鍚嶇О涓嶅彲鍚屾椂涓虹┖"))); + excelComments.add(new ExcelComment(0, 0, 1, 2, SalaryI18nUtil.getI18nLabel(100344, "蹇呭~"))); + excelComments.add(new ExcelComment(6, 0, 7, 2, SalaryI18nUtil.getI18nLabel(100344, "蹇呭~"))); + excelComments.add(new ExcelComment(7, 0, 8, 2, SalaryI18nUtil.getI18nLabel(100344, "绀句繚,鍏Н閲,鍏朵粬绂忓埄鏂规鍚嶇О涓嶅彲鍚屾椂涓虹┖"))); //宸ヤ綔绨挎暟鎹 @@ -189,11 +196,12 @@ public class SIImportServiceImpl extends Service implements SIImportService { public List buildHeader() { List result = new ArrayList<>(); result.add(SalaryI18nUtil.getI18nLabel( 85429, "濮撳悕")); + result.add(SalaryI18nUtil.getI18nLabel( 86184, "涓◣鎵g即涔夊姟浜")); + result.add(SalaryI18nUtil.getI18nLabel( 0, "鍒嗛儴")); result.add(SalaryI18nUtil.getI18nLabel( 86185, "閮ㄩ棬")); result.add(SalaryI18nUtil.getI18nLabel( 86186, "鎵嬫満鍙")); result.add(SalaryI18nUtil.getI18nLabel( 86187, "鍛樺伐鐘舵")); result.add(SalaryI18nUtil.getI18nLabel(86317, "宸ュ彿")); - result.add(SalaryI18nUtil.getI18nLabel( 86184, "涓◣鎵g即涔夊姟浜")); result.add(SalaryI18nUtil.getI18nLabel( 91323, "绀句繚鏂规鍚嶇О")); // result.add(SalaryI18nUtil.getI18nLabel( 91325, "绀句繚缂寸撼缁勭粐")); //绀句繚绂忓埄鍩烘暟 diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 39cd4e1de..dca7cd0d5 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -282,6 +282,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { Map map = new HashMap<>(); map.put("employeeName", item.getUserName()); map.put("employeeId", item.getEmployeeId()); + map.put("subcompanyName", item.getSubcompanyName()); map.put("departmentName", item.getDepartmentName()); map.put("departmentId", item.getDepartmentId()); map.put("jobNum", item.getJobNum()); @@ -462,11 +463,12 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { WeaTableColumn nameColumn = new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), "employeeName"); nameColumn.setFixed("left"); list.add(nameColumn); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(93910, "涓◣鎵g即涔夊姟浜"), "paymentOrganizationName")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(0, "鍒嗛儴"), "subcompanyName")); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(86185, "閮ㄩ棬"), "departmentName")); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), "mobile")); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(86187, "鍛樺伐鐘舵"), "status")); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(1933, "宸ュ彿"), "jobNum")); - list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(93910, "涓◣鎵g即涔夊姟浜"), "paymentOrganizationName")); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91323, "绀句繚鏂规鍚嶇О"), "socialName")); titleMap.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> list.add(new WeaTableColumn("150px", v, k))); list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(91324, "绀句繚璐﹀彿"), "socialAccount")); diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 3b401e4b7..7bfc546fc 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -221,7 +221,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc resultValue = handleConsolidatedTax(resultValue, salaryItemPO, salaryAcctCalculateBO, otherSalaryAcctEmployeePOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()), otherSalaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId())); // 澶勭悊灏忔暟鐐 - resultValue = SalaryAcctFormulaBO.roundResultValue(resultValue, salaryItemPO, salarySobBackItems, salarySobBackItemMap); + resultValue = SalaryAcctFormulaBO.roundResultValue(resultValue, salaryItemPO, salarySobBackItems, salarySobBackItemMap, salaryItemIdKeySalarySobItemPOMap); //鏄惁閿佸畾 if (lockSalaryItemIds.contains(salaryItemId) && salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId) != null) { resultValue = salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId).getResultValue(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 3e808cb80..7dad4d050 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -154,8 +154,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), SalaryI18nUtil.getI18nLabel(86186, "宸ュ彿"), SalaryI18nUtil.getI18nLabel(91075, "鍛樺伐鐘舵"), - SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡"), - SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") + SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡") +// SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") }; List headerList = new ArrayList<>(Arrays.asList(header)); // 鏌ヨ钖祫鏍哥畻浜哄憳 @@ -187,8 +187,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), SalaryI18nUtil.getI18nLabel(86186, "宸ュ彿"), SalaryI18nUtil.getI18nLabel(91075, "鍛樺伐鐘舵"), - SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡"), - SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") + SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡") +// SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") }; List headerList = new ArrayList<>(Arrays.asList(header)); // 鏌ヨ钖祫鏍哥畻浜哄憳锛堢幆姣斾笂鏈堝噺灏戯級 @@ -219,8 +219,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), SalaryI18nUtil.getI18nLabel(86186, "宸ュ彿"), SalaryI18nUtil.getI18nLabel(91075, "鍛樺伐鐘舵"), - SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡"), - SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") + SalaryI18nUtil.getI18nLabel(91075, "鍏ヨ亴鏃ユ湡") +// SalaryI18nUtil.getI18nLabel(91075, "绂昏亴鏃ユ湡") }; List headerList = new ArrayList<>(Arrays.asList(header)); // 鏌ヨ钖祫鏍哥畻浜哄憳锛堢幆姣斾笂鏈堝鍔狅級 @@ -263,7 +263,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc row.add(dto.getJobNum()); row.add(dto.getStatus()); row.add(dto.getHireDate()); - row.add(dto.getDismissDate()); +// row.add(dto.getDismissDate()); rows.add(row); } return rows; diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index c2b522a62..717cfc917 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -329,6 +329,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } // 鏌ヨ钖祫鏍哥畻鎵鐢ㄨ柂璧勮处濂楃殑钖祫椤圭洰 List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + Map salaryItemIdKeySalarySobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); if(Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)){ // 鏄洖绠楋紝鑾峰彇鍥炵畻椤 @@ -336,6 +337,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe salaryItemIds.addAll(salarySobBackItemPOS.stream().map(SalarySobBackItemPO::getSalaryItemId).collect(Collectors.toList())); } List salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds); + // 鏌ヨ钖祫鏍哥畻缁撴灉 List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList()); List salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); @@ -350,7 +352,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .filter(NumberUtils::isCreatable) .map(BigDecimal::new) .reduce(BigDecimal.ZERO, BigDecimal::add); - map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap())); + map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap)); }); return map; } diff --git a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java new file mode 100644 index 000000000..427f28ada --- /dev/null +++ b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java @@ -0,0 +1,182 @@ +package com.engine.salary.service.impl; + +import com.api.formmode.mybatis.util.SqlProxyHandle; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.salaryBill.param.SalaryBillItemNameSaveParam; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.salarybill.SalaryBillItemNameMapper; +import com.engine.salary.service.SalaryBillItemNameService; +import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SalaryTemplateService; +import com.engine.salary.util.SalaryEntityUtil; +import com.google.common.collect.Lists; +import dm.jdbc.util.IdGenerator; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameServiceImpl + * @date 2023/07/18 16:17 + * @description + */ +public class SalaryBillItemNameServiceImpl extends Service implements SalaryBillItemNameService { + + private SalaryBillItemNameMapper getSalaryBillItemNameMapper() { + return SqlProxyHandle.getProxy(SalaryBillItemNameMapper.class); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalaryTemplateService getSalaryTemplateService(User user) { + return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user); + } + @Override + public List listAll() { + return getSalaryBillItemNameMapper().listAll(); + } + + @Override + public SalaryBillItemNamePO getById(Long id) { + return getSalaryBillItemNameMapper().getById(id); + } + + @Override + public int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().insertIgnoreNull(salaryBillItemNamePO); + } + + @Override + public int update(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().update(salaryBillItemNamePO); + } + + @Override + public int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().updateIgnoreNull(salaryBillItemNamePO); + } + + @Override + public int delete(Long id) { + return getSalaryBillItemNameMapper().delete(id); + } + + @Override + public List ListByTemplateAndType(SalaryBillItemNamePO param) { + return getSalaryBillItemNameMapper().listSome(param); + } + + @Override + public void saveItemShowName(List saveList) { + saveList= saveList.stream().filter(param -> !Objects.isNull(param.getSalaryTemplateId()) && CollectionUtils.isNotEmpty(param.getItemShowNameSetting())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(saveList)) + return; + List templateIdList = saveList.stream().map(SalaryBillItemNameSaveParam::getSalaryTemplateId).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(templateIdList) || templateIdList.size()>1){ + throw new SalaryRunTimeException("宸ヨ祫鍗曟ā鏉縤d涓虹┖锛屾垨瀛樺湪澶氫釜宸ヨ祫鍗曟ā鏉縤d"); + } + Long salaryTemplateId = templateIdList.get(0); + SalaryTemplatePO salaryTemplatePO = getSalaryTemplateService(user).getById(salaryTemplateId); + if(Objects.isNull(salaryTemplatePO)){ + throw new SalaryRunTimeException("宸ヨ祫鍗曟ā鏉夸笉瀛樺湪鎴栧凡琚垹闄"); + } + List needInsertList = new ArrayList<>(); + List needUpdateList = new ArrayList<>(); + Date now = new Date(); + // 鏍规嵁妯℃澘绫诲瀷鍒嗙粍 + Map> saveMap = SalaryEntityUtil.convert2Map(saveList, SalaryBillItemNameSaveParam::getSalaryBillType, SalaryBillItemNameSaveParam::getItemShowNameSetting); + + for(Map.Entry> entry : saveMap.entrySet()){ + // 鑾峰彇宸茬粡璁剧疆鐨勫睍绀哄悕 + List billItemNameList = ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId).salaryBillType(entry.getKey()).build()); + Map billItemNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId); + List needDeleteItemIdList = new ArrayList<>(); + + entry.getValue().stream().forEach(setting -> { + if(StringUtils.isBlank(setting.getSalaryItemShowName())){ + // 鏄剧ず鍚嶄负绌哄垯鍒犻櫎璁剧疆 + needDeleteItemIdList.add(setting.getSalaryItemId()); + }else{ + if(billItemNameMap.containsKey(setting.getSalaryItemId())){ + // 鏇存柊 + SalaryBillItemNamePO po = billItemNameMap.get(setting.getSalaryItemId()); + po.setSalaryItemShowName(setting.getSalaryItemShowName()); + po.setUpdateTime(now); + needUpdateList.add(po); + }else{ + // 鏂板 + needInsertList.add(SalaryBillItemNamePO.builder() + .id(IdGenerator.generate()) + .salaryItemId(setting.getSalaryItemId()) + .salaryItemShowName(setting.getSalaryItemShowName()) + .salaryTemplateId(salaryTemplateId) + .salaryBillType(entry.getKey()) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + } + } + }); + // 鍒犻櫎 + batchDeleteByItemIdsAndTemplateId(needDeleteItemIdList, salaryTemplateId, entry.getKey()); + } + // 鍏ュ簱 + batchUpdate(needUpdateList); + batchInsert(needInsertList); + } + + @Override + public void batchUpdate(List needUpdateList) { + if(CollectionUtils.isEmpty(needUpdateList)){ + return; + } + List> partition = Lists.partition(needUpdateList, 500); + partition.forEach(getSalaryBillItemNameMapper()::batchUpdate); + } + + @Override + public void batchInsert(List needInsertList) { + if(CollectionUtils.isEmpty(needInsertList)){ + return; + } + List> partition = Lists.partition(needInsertList, 500); + partition.forEach(getSalaryBillItemNameMapper()::batchInsert); + } + + @Override + public void deleteByIds(List needDeleteIds) { + if(CollectionUtils.isEmpty(needDeleteIds)){ + return; + } + List> partition = Lists.partition(needDeleteIds, 1000); + partition.forEach(getSalaryBillItemNameMapper()::deleteByIds); + } + + public void batchDeleteByItemIdsAndTemplateId(List salaryItemIds, Long salaryTemplateId, Integer salaryBillType) { + if(CollectionUtils.isEmpty(salaryItemIds) || Objects.isNull(salaryTemplateId) || Objects.isNull(salaryBillType)) + return; + getSalaryBillItemNameMapper().deleteByItemIdsAndTemplateId(salaryItemIds, salaryTemplateId, salaryBillType); + } + + @Override + public void deleteByTemplateIds(Collection ids) { + if(CollectionUtils.isEmpty(ids)){ + return; + } + getSalaryBillItemNameMapper().deleteByTemplateIds(ids); + } +} diff --git a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java index d1856b6c7..401a761d7 100644 --- a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java @@ -138,6 +138,8 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe param.setFormula(param.getFormula().replaceAll("锛ワ几锛╋汲锛达汲", "EXISTS")); param.setFormula(param.getFormula().replaceAll("锝傦絽锝旓綏锝咃絽锝", "between")); param.setFormula(param.getFormula().replaceAll("锛讥锛达挤锛ワ讥锛", "BETWEEN")); + param.setFormula(param.getFormula().replaceAll("锝曪綆锝夛綇锝", "union")); + param.setFormula(param.getFormula().replaceAll("锛碉籍锛╋集锛", "UNION")); // 瑙f瀽鍏紡涓殑鍙傛暟 if (ReferenceTypeEnum.parseByValue(param.getReferenceType()) == ReferenceTypeEnum.FORMULA) { diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 29d4ee4e2..c3674c65d 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -239,7 +239,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService newSalaryItemPO.setHideDefault(saveParam.getHideDefault()); newSalaryItemPO.setRoundingMode(saveParam.getRoundingMode()); newSalaryItemPO.setPattern(saveParam.getPattern()); -// newSalaryItemPO.setValueType(saveParam.getValueType()); + newSalaryItemPO.setValueType(saveParam.getValueType()); newSalaryItemPO.setDataType(saveParam.getDataType()); newSalaryItemPO.setFormulaId(Objects.equals(saveParam.getValueType(), SalaryValueTypeEnum.INPUT.getValue()) ? 0L : saveParam.getFormulaId()); newSalaryItemPO.setDescription(saveParam.getDescription()); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index c12a923e8..94c34f599 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1549,6 +1549,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } // 鏌ヨ钖祫鏍哥畻鎵鐢ㄨ柂璧勮处濂楃殑钖祫椤圭洰 List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + Map salaryItemIdKeySalarySobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getId); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)) { // 鏄洖绠楋紝鑾峰彇鍥炵畻椤 @@ -1575,7 +1576,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .filter(NumberUtils::isCreatable) .map(BigDecimal::new) .reduce(BigDecimal.ZERO, BigDecimal::add); - map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap())); + map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap)); }); return map; } diff --git a/src/com/engine/salary/service/impl/SalarySobItemHideServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemHideServiceImpl.java index 8a30b7ba5..f4e6895d2 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemHideServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemHideServiceImpl.java @@ -13,6 +13,16 @@ public class SalarySobItemHideServiceImpl extends Service implements SalarySobIt @Override public List listHideGroupBysalarySobId(SalarySobItemHidePO salarySobPO) { - return salarySobItemHideMapper.listSome(salarySobPO); + return salarySobItemHideMapper.listHideItemIds(salarySobPO); + } + + @Override + public List listSome(SalarySobItemHidePO po) { + return salarySobItemHideMapper.listSome(po); + } + + @Override + public void updateById(SalarySobItemHidePO salarySobItemHidePO) { + salarySobItemHideMapper.update(salarySobItemHidePO); } } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 4d1a8d659..169b54bb8 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -11,9 +11,11 @@ import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO; import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobDefaultItemMapper; import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper; @@ -25,8 +27,10 @@ import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import weaver.general.BaseBean; import weaver.hrm.User; import java.util.*; @@ -201,10 +205,6 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe // 鏌ヨ钖祫璐﹀鐨勮柂璧勯」鐩垎绫 List salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobIdWithItemHide(salarySobId); - if (isBackCalc) { - // 鍥炵畻鍒嗙被 - - } // 鑾峰彇鍏抽棴鏄剧ず鐨勫垎绫 List hideGroupIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salarySobId).isGroup(1).build()); // 杩囨护鍏抽棴鏄剧ず鐨勮柂璧勯」鐩垎绫 @@ -348,6 +348,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe List needUpdateGroup = itemGroups.stream().filter(f -> f.getId() != null && oldGroupIds.contains(f.getId())).collect(Collectors.toList()); List needDeleteGroupIds = oldGroupIds.stream().filter(f -> !newGroupIds.contains(f)).collect(Collectors.toList()); + // 鑾峰彇鎵鏈夎柂璧勯」鐩 + List allSalaryItemList = getSalaryItemService(user).listAll(); + Map salaryItemsMap = SalaryEntityUtil.convert2Map(allSalaryItemList, SalaryItemPO::getId); + // 闇瑕佷繚瀛樼殑闅愯棌椤圭洰 List needInsertItemShow = new ArrayList<>(); @@ -390,6 +394,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) { + SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap); SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder() .salarySobId(salarySobId) .salaryItemId(itemParam.getSalaryItemId()) @@ -403,6 +408,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)) + .roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()) + .pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()) + .valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()) .build(); salarySobItems.add(salarySobItemPO); @@ -465,6 +473,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe //鏂板 for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) { + SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap); SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder() .salarySobId(salarySobId) .salaryItemId(itemParam.getSalaryItemId()) @@ -478,6 +487,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .updateTime(now) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .deleteType(NumberUtils.INTEGER_ZERO) + .roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()) + .pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()) + .valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()) .build(); salarySobItems.add(salarySobItemPO); @@ -499,6 +511,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe } //鏇存柊 for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) { + SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap); SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder() .id(itemParam.getId()) .salaryItemId(itemParam.getSalaryItemId()) @@ -508,6 +521,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)) .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) + .roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()) + .pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()) + .valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()) .build(); getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO); // 淇濆瓨钖祫椤圭洰鏄惁灞曠ず @@ -547,7 +563,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe List needUpdateItems = items.stream().filter(f -> f.getId() != null && oldItemIds.contains(f.getId())).collect(Collectors.toList()); for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) { - + SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap); SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder() .salarySobId(salarySobId) .salaryItemId(itemParam.getSalaryItemId()) @@ -561,6 +577,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)) + .roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()) + .pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()) + .valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()) .build(); salarySobItems.add(salarySobItemPO); @@ -583,13 +602,16 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe } for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) { - + SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap); SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder() .id(itemParam.getId()) .formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)) .sortedIndex(itemParam.getSortedIndex()) .updateTime(now) .canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)) + .roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()) + .pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()) + .valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()) .build(); getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO); @@ -622,6 +644,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe batchSaveShow(needInsertItemShow); } + private SalaryItemPO checkItemExists(Long salaryItemId, Map salaryItemsMap) { + SalaryItemPO salaryItemPO = salaryItemsMap.get(salaryItemId); + if (ObjectUtils.isEmpty(salaryItemPO)){ + throw new SalaryRunTimeException("淇濆瓨澶辫触锛佸瓨鍦ㄨ柂璧勯」鐩笉瀛樺湪鎴栧凡琚垹闄"); + } + return salaryItemPO; + } private void handleEmpField(SalarySobItemSaveParam saveParam) { @@ -697,4 +726,66 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe public void deleteItemShowBySalarySobIds(Collection salarySobIds) { salarySobItemMapper.deleteItemShowBySalarySobId(salarySobIds); } + + @Override + public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) { + SalarySobItemFormDTO salarySobItemFormDTO = new SalarySobItemFormDTO(); + salarySobItemFormDTO.setCanEdit(1); + // 榛樿鍙互缂栬緫 + if (ObjectUtils.isNotEmpty(param.getSalarySobId()) && ObjectUtils.isNotEmpty(param.getSalaryItemId())) { + // 鏌ヨ钖祫璐﹀ + SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId()); + if (Objects.isNull(salarySobPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "鍙傛暟閿欒锛岃柂璧勮处濂椾笉瀛樺湪鎴栬呭凡琚垹闄")); + } + // 鏌ヨ钖祫椤圭洰 + List salarySobItemPOS = getSalarySobItemMapper().listSome(SalarySobItemPO.builder().salarySobId(param.getSalarySobId()).salaryItemId(param.getSalaryItemId()).build()); + if (CollectionUtils.isEmpty(salarySobItemPOS)){ + throw new SalaryRunTimeException("璐﹀涓柂璧勯」鐩笉瀛樺湪"); + } + SalarySobItemPO salarySobItemPO = salarySobItemPOS.get(0); + SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(salarySobItemPO.getSalaryItemId()); + if (ObjectUtils.isEmpty(salaryItemPO)){ + throw new SalaryRunTimeException("钖祫椤圭洰涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎"); + } + //鑾峰彇绯荤粺鍊 + List salarySobDefaultItemPOS = getSalarySobDefaultItemMapper().listAll(); + salarySobDefaultItemPOS = salarySobDefaultItemPOS.stream().filter(po -> po.getSysSalaryItemId() != 0).collect(Collectors.toList()); + Map longIntegerMap = SalaryEntityUtil.convert2Map(salarySobDefaultItemPOS, SalarySobDefaultItemPO::getSysSalaryItemId, SalarySobDefaultItemPO::getCanDelete); + if (salaryItemPO.getSysSalaryItemId() != null){ + salarySobItemPO.setCanDelete(longIntegerMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), 1)); + } + // 鑾峰彇钖祫椤圭洰鍏紡 + List expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(salarySobItemPO.getFormulaId())); + // 寮哄埗寮鍚处濂楃殑鍏紡閰嶇疆 + BaseBean baseBean = new BaseBean(); + final Boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing")); + // 鑾峰彇鏍哥畻鏃堕殣钘忕殑钖祫椤圭洰id + List hideItemIds = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder() + .salarySobId(param.getSalarySobId()) + .isGroup(new Integer(0)) + .salaryItemId(param.getSalaryItemId()) + .build()); + + String formulaContent = CollectionUtils.isEmpty(expressFormulas) ? "" : expressFormulas.get(0).getFormula(); + Integer valueType = ObjectUtils.isEmpty(salarySobItemPO.getValueType()) ? salaryItemPO.getValueType() : salarySobItemPO.getValueType(); + salarySobItemFormDTO + .setId(salarySobItemPO.getId()) + .setName(salaryItemPO.getName()) + .setItemHide(hideItemIds.contains(salaryItemPO.getId()) ? 1 : 0) + .setDataType(salaryItemPO.getDataType()) + .setRoundingMode(ObjectUtils.isEmpty(salarySobItemPO.getRoundingMode()) ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode()) + .setPattern(ObjectUtils.isEmpty(salarySobItemPO.getPattern()) ? salaryItemPO.getPattern() : salarySobItemPO.getPattern()) + .setValueType(valueType) + .setFormulaId(salarySobItemPO.getFormulaId()) + .setFormulaContent(CollectionUtils.isNotEmpty(expressFormulas) ? formulaContent : "") + .setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "") + .setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "") + .setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) + .setDescription(salarySobItemPO.getDescription()) + .setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0); + } + return salarySobItemFormDTO; + } + } diff --git a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java index ee35404dc..bc1b7ba26 100644 --- a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java @@ -7,11 +7,13 @@ import com.engine.salary.biz.SalarySobBiz; import com.engine.salary.biz.SalaryTemplateBiz; import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO; import com.engine.salary.entity.salaryBill.dto.SalaryTemplateListDTO; +import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemListDTO; import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO; import com.engine.salary.entity.salaryBill.param.SalaryTemplateCopyParam; import com.engine.salary.entity.salaryBill.param.SalaryTemplateDefaultUseParam; import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam; import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; @@ -25,7 +27,9 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.mzlion.core.utils.BeanUtils; +import dm.jdbc.util.IdGenerator; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; @@ -59,6 +63,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user); } + private SalaryBillItemNameService getSalaryBillItemNameService(User user) { + return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user); + } + @Override public SalaryTemplatePO getById(Long id) { return mapper.getById(id); @@ -138,6 +146,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplate.setSalaryItemZeroStatus(saveParam.getSalaryItemZeroStatus()?1:0); salaryTemplate.setAutoSendCycleType(saveParam.getAutoSendCycleType()); mapper.insert(salaryTemplate); + + // 瀛樺偍宸ヨ祫鍗曢」鐩嚜瀹氫箟鍚嶇О淇℃伅 + saveParam.getSalaryBillItemNameSetting().stream().forEach(set -> set.setSalaryTemplateId(salaryTemplate.getId())); + getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting()); // 璁板綍鏃ュ織 // SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate, // salaryTemplate.getId(), @@ -204,6 +216,24 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplateNew.setSalaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : ""); salaryTemplateNew.setReplenishSalaryItemSetting(saveParam.getReplenishSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getReplenishSalaryItemSetting()) : ""); mapper.updateById(salaryTemplateNew); + + // 淇濆瓨鑷畾涔夊伐璧勫崟椤圭洰鍚嶇О淇℃伅 + getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting()); + // 妯℃澘涓病鏈夌殑钖祫椤圭洰闇瑕佸悓姝ュ垹闄ゆ樉绀哄悕绉拌〃 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(saveParam.getId()).build()); + Map> billItemNameMap = SalaryEntityUtil.group2Map(billItemNameList, SalaryBillItemNamePO::getSalaryBillType); + List saveItemList = saveParam.getSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList()); + Set saveItemIdList = SalaryEntityUtil.properties(saveItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId); + // 姝e父宸ヨ祫鍗曟ā鏉夸腑鍒犻櫎鐨勮柂璧勯」鐩 + List needDeleteIds = billItemNameMap.getOrDefault(NumberUtils.INTEGER_ZERO, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString())) + .map(SalaryBillItemNamePO::getId).collect(Collectors.toList()); + // 琛ュ彂宸ヨ祫鍗曟ā鏉夸腑鍒犻櫎鐨勮柂璧勯」鐩 + List replenishItemList = saveParam.getReplenishSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList()); + Set saveReplenishItemIdList = SalaryEntityUtil.properties(replenishItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId); + needDeleteIds.addAll(billItemNameMap.getOrDefault(NumberUtils.INTEGER_ONE, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveReplenishItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString())) + .map(SalaryBillItemNamePO::getId).collect(Collectors.toList())); + getSalaryBillItemNameService(user).deleteByIds(needDeleteIds); + // 璁板綍鏃ュ織 // SalaryLoggerUtil.recordUpdateSingleLog(salaryTemplateLoggerTemplate, // salaryTemplate.getId(), @@ -238,6 +268,21 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplateNew.setName(copyParam.getName()); salaryTemplateNew.setUseType(SalaryTemplateWhetherEnum.FALSE.getValue()); mapper.insert(salaryTemplateNew); + + // 澶嶅埗宸ヨ祫鍗曡嚜瀹氫箟鍚嶇О淇℃伅 + List billItemNamePOList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(copyParam.getId()).build()); + if(CollectionUtils.isNotEmpty(billItemNamePOList)){ + Date now = new Date(); + List needInsertList = billItemNamePOList.stream().map(po -> { + SalaryBillItemNamePO newSalaryBillItemNamePO = new SalaryBillItemNamePO(); + BeanUtils.copyProperties(po, newSalaryBillItemNamePO); + newSalaryBillItemNamePO.setId(IdGenerator.generate()); + newSalaryBillItemNamePO.setUpdateTime(now); + newSalaryBillItemNamePO.setSalaryTemplateId(salaryTemplateNew.getId()); + return newSalaryBillItemNamePO; + }).collect(Collectors.toList()); + getSalaryBillItemNameService(user).batchInsert(needInsertList); + } // 璁板綍鏃ュ織 // SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate, // salaryTemplateNew.getId(), @@ -260,6 +305,8 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate } // TODO 姝e湪浣跨敤鐨勮褰曚笉鍏佽鍒犻櫎 mapper.deleteByIds(ids); + // 鍒犻櫎宸ヨ祫鍗曢噸鍛藉悕琛 + getSalaryBillItemNameService(user).deleteByTemplateIds(ids); // 璁板綍鏃ュ織 // salaryTemplates.forEach(e -> SalaryLoggerUtil.recordDeleteSingleLog(salaryTemplateLoggerTemplate, // e.getId(), @@ -308,9 +355,31 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate } @Override - public List getSalaryItemSetContainHide(Long salarySobId, boolean isReplenish) { + public List getSalaryItemSetContainHide(Long salarySobId, Long salaryTemplateId, boolean isReplenish) { SalarySobItemAggregateDTO salarySobItemAggregate = getSalarySobItemService(user).getAggregateBySalarySobId(salarySobId); - return SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish); + // 鑾峰彇宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕淇℃伅 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType( + SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId) + .salaryBillType(isReplenish ? 1 : 0) + .build()); + Map itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + + List salaryTemplateSalaryItemSetListDTOS = SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish); + salaryTemplateSalaryItemSetListDTOS.stream() + .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) + .forEach(data -> { + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "锛" + item.getOriginName() +"锛"); + }else{ + item.setSalaryItemShowName(item.getOriginName()); + item.setName(item.getOriginName()); + } + }); + }); + return salaryTemplateSalaryItemSetListDTOS; } @Override diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 42da849f9..d3cbc3999 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -12,6 +12,9 @@ import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.siaccount.param.InsuranceAccountBatchParam; +import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; @@ -31,6 +34,8 @@ import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.datacollection.OtherDeductionMapper; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; +import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; import com.engine.salary.util.SalaryEntityUtil; @@ -117,6 +122,14 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private InsuranceBaseInfoMapper getInsuranceBaseInfoMapper() { + return MapperProxyFactory.getProxy(InsuranceBaseInfoMapper.class); + } + + private InsuranceAccountBatchMapper getInsuranceAccountBatchMapper() { + return MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class); + } + // private PaymentAgencyMapper paymentAgencyMapper; @@ -469,6 +482,16 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { if (CollectionUtils.isNotEmpty(salaryArchiveList)) { throw new SalaryRunTimeException("瀛樺湪钖祫妗f寮曠敤"); } + // 琚ぞ淇濈鍒╂。妗堝紩鐢 + List socialByPaymentOrganization = getInsuranceBaseInfoMapper().getSocialByPaymentOrganization(id); + if(CollectionUtils.isNotEmpty(socialByPaymentOrganization)){ + throw new SalaryRunTimeException("瀛樺湪绀句繚绂忓埄妗f寮曠敤"); + } + // 琚ぞ淇濈鍒╁彴璐﹀紩鐢 + List insuranceArchiveList = getInsuranceAccountBatchMapper().list(InsuranceAccountBatchParam.builder().taxAgents(Collections.singletonList(id)).build()); + if(CollectionUtils.isNotEmpty(insuranceArchiveList)){ + throw new SalaryRunTimeException("瀛樺湪绀句繚绂忓埄鍙拌处寮曠敤"); + } //琚ぞ淇濈鍒╂。妗堝紩鐢 // List socialSchemePOList = new LambdaQueryChainWrapper<>(siArchivesSocialMapper) // .eq(InsuranceArchivesSocialSchemePO::getTenantKey) diff --git a/src/com/engine/salary/web/ExtEmpController.java b/src/com/engine/salary/web/ExtEmpController.java index 9be31acf7..4e6225435 100644 --- a/src/com/engine/salary/web/ExtEmpController.java +++ b/src/com/engine/salary/web/ExtEmpController.java @@ -1,13 +1,17 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.ExtEmpWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -16,7 +20,13 @@ import javax.servlet.http.HttpServletResponse; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.StreamingOutput; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.time.LocalDate; import java.util.Collection; +import java.util.Map; /** * 澶栭儴浜哄憳 @@ -26,6 +36,7 @@ import java.util.Collection; * @author qiantao * @version 1.0 **/ +@Slf4j public class ExtEmpController { private ExtEmpWrapper getExtEmpWrapper(User user) { @@ -72,6 +83,50 @@ public class ExtEmpController { return new ResponseResult(user).run(getExtEmpWrapper(user)::detail, id); } + // **********************************闈炵郴缁熶汉鍛樺鍏 start*********************************/ + //瀵煎嚭瀵煎叆妯℃澘 + @GET + @Path("/importtemplate/export") + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response exportImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + XSSFWorkbook workbook = getExtEmpWrapper(user).exportImportTemplate(); + String time = LocalDate.now().toString(); + String fileName = SalaryI18nUtil.getI18nLabel(0, "闈炵郴缁熶汉鍛樺鍏ユā鏉") + time; + try { + fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8").replaceAll("\\+", "%20"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + StreamingOutput output = outputStream -> { + workbook.write(outputStream); + outputStream.flush(); + }; + response.setContentType("application/octet-stream"); + return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); + } catch (Exception e) { + log.error("闈炵郴缁熶汉鍛樺鍏ユā鏉垮鍑哄紓甯", e); + throw e; + } + } + //瀵煎叆闈炵郴缁熶汉鍛 + @POST + @Path("/importExtEmp") + @Produces(MediaType.APPLICATION_JSON) + public String importExtEmp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ExtEmpImportParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getExtEmpWrapper(user)::importExtEmp, param); + } + + @POST + @Path("/preview") + @Produces(MediaType.APPLICATION_JSON) + public String previewImportExtEmp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ExtEmpImportParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getExtEmpWrapper(user)::previewImportExtEmp, param); + } + // **********************************闈炵郴缁熶汉鍛樺鍏 end*********************************/ } diff --git a/src/com/engine/salary/web/SIArchivesController.java b/src/com/engine/salary/web/SIArchivesController.java index 0724cf7f1..d70763a45 100644 --- a/src/com/engine/salary/web/SIArchivesController.java +++ b/src/com/engine/salary/web/SIArchivesController.java @@ -233,4 +233,20 @@ public class SIArchivesController { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, Map>(user).run(getService(user)::deleteArchive, ids); } + + /** + * 鏌ヨ闈炵郴缁熶汉鍛樼鍒╂。妗堝垪琛 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/getExtTable") + @Produces(MediaType.APPLICATION_JSON) + public String getExtTable(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody InsuranceArchivesListParam param) { + User user = HrmUserVarify.getUser(request, response); + param.setExtWelArchiveList(true); + return new ResponseResult>(user).run(getService(user)::listPage, param); + } } diff --git a/src/com/engine/salary/web/SICategoryController.java b/src/com/engine/salary/web/SICategoryController.java index d4f6626eb..0cbb6216b 100644 --- a/src/com/engine/salary/web/SICategoryController.java +++ b/src/com/engine/salary/web/SICategoryController.java @@ -110,7 +110,8 @@ public class SICategoryController { public String updateCustomCategoryName(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody ICategoryFormDTO iCategoryFormDTO) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); - return new ResponseResult< ICategoryFormDTO, Map>(user).run(getService(user)::updateCategoryName, iCategoryFormDTO); +// return new ResponseResult< ICategoryFormDTO, Map>(user).run(getService(user)::updateCategoryName, iCategoryFormDTO); + return new ResponseResult< ICategoryFormDTO, Map>(user).run(getService(user)::updateCategoryNameAndPayScope, iCategoryFormDTO); } @@ -126,20 +127,18 @@ public class SICategoryController { /** - * 璇ユ帴鍙f殏鏃舵病鐢紝鍒犻櫎绂忓埄绫诲瀷瀵规。妗堝拰鍙拌处鏍哥畻閮芥湁寰堝ぇ鐨勫奖鍝嶏紝鏆傛椂杩樻病鑰冭檻濂芥庝箞鍋 - * 鍒犻櫎绂忓埄绫诲瀷 - * - * @param request - * @param response - * @return + * 鍒犻櫎鑷畾涔夌鍒╅」 + * 蹇呰鏉′欢锛 + * 1-绂忓埄椤规湭鍚敤锛 + * 2-绂忓埄鏍哥畻鏁版嵁涓笉鑳藉瓨鍦ㄨ绂忓埄椤圭殑鏍哥畻鏁版嵁 */ + @POST @Path("/deleteCustomCategory") @Produces(MediaType.APPLICATION_JSON) - public String deleteSoftById(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public String deleteCustomCategory(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ICategoryFormDTO iCategoryFormDTO) { User user = HrmUserVarify.getUser(request, response); - return null; - //return ResponseResult.run(getService(user)::delete, map); + return new ResponseResult< ICategoryFormDTO, Map>(user).run(getService(user)::deleteCustomCategory, iCategoryFormDTO); } diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index 842c8b0eb..a41f03415 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -250,7 +250,7 @@ public class SISchemeController { param.setRunStatuses( Arrays.stream(runStatuses.split(",")).map(String::valueOf).collect(Collectors.toList())); } param.setExportData(Boolean.valueOf(request.getParameter("exportData"))); - + param.setExtWelArchiveList(Boolean.valueOf(request.getParameter("extWelArchiveList"))); User user = HrmUserVarify.getUser(request, response); if (param.getInspectAll() != null && param.getInspectAll()) { List insuranceAccountInspectPOS = getSIAccountService(user).allInspects(param.getIds(), param.getBillMonth()); @@ -259,7 +259,9 @@ public class SISchemeController { XSSFWorkbook workbook = getService(user).exportTemplate(param); String fileName; //琛ㄥご - if (param.getRunStatuses().size() > 0) { + if (param.isExtWelArchiveList()) { + fileName = SalaryI18nUtil.getI18nLabel(0, "绀句繚绂忓埄妗f瀵煎叆妯℃澘") + "-" + SalaryI18nUtil.getI18nLabel(542679, "闈炵郴缁熶汉鍛"); + } else if (param.getRunStatuses().size() > 0) { if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { fileName = SalaryI18nUtil.getI18nLabel(85368, "绀句繚绂忓埄妗f瀵煎叆妯℃澘" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel()); } else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) { @@ -275,6 +277,7 @@ public class SISchemeController { fileName = SalaryI18nUtil.getI18nLabel(85368, "绀句繚绂忓埄妗f瀵煎叆妯℃澘"); } + fileName = fileName + LocalDate.now(); try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index e3f080ae4..5a1a652f0 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -530,9 +530,8 @@ public class SalaryArchiveController { } //1鏍囪瘑澶栭儴浜哄憳 String extSalaryArchiveList = request.getParameter("extSalaryArchiveList"); - extSalaryArchiveList ="1"; if (StringUtils.isNotBlank(extSalaryArchiveList)) { - param.setExtSalaryArchiveList("1".equals(extSalaryArchiveList)); + param.setExtSalaryArchiveList("true".equals(extSalaryArchiveList)); } return param; } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index ea5cdeece..f8a7ce21d 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -98,6 +98,19 @@ public class SalaryBillController { return new ResponseResult(user).run(getSalaryTemplateWrapper(user)::getShowForm, id); } + /** + * 璁剧疆宸ヨ祫鍗曟ā鏉胯柂璧勯」鏄剧ず鍚嶇О + * + * @return + */ + @POST + @Path("/template/saveItemShowName") + @Produces(MediaType.APPLICATION_JSON) + public String saveItemShowName(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, String>(user).run(getSalaryTemplateWrapper(user)::saveItemShowName, param); + } + /** * 鑾峰彇钖祫椤圭洰璁剧疆 * diff --git a/src/com/engine/salary/web/SalaryFormulaController.java b/src/com/engine/salary/web/SalaryFormulaController.java index 1addfc397..d4ae5f8e7 100644 --- a/src/com/engine/salary/web/SalaryFormulaController.java +++ b/src/com/engine/salary/web/SalaryFormulaController.java @@ -2,6 +2,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaDetailQueryParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaMockParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; @@ -51,12 +52,12 @@ public class SalaryFormulaController { } //鑾峰彇鍏紡璇︽儏 - @GET + @POST @Path("/detail") @Produces(MediaType.APPLICATION_JSON) - public String detail(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "formulaId") Long formulaId) { + public String detail(@Context HttpServletRequest request, @Context HttpServletResponse response, SalaryFormulaDetailQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryFormulaWrapper(user)::detail, formulaId); + return new ResponseResult(user).run(getSalaryFormulaWrapper(user)::detail, queryParam); } @POST diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index aba305a74..aab9889e3 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO; +import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.ResponseResult; @@ -373,6 +374,19 @@ public class SalarySobController { } + /** + * 钖祫璐﹀-钖祫椤圭洰鐨勮鎯 + */ + @POST + @Path("/item/getSalaryItemForm") + @Produces(MediaType.APPLICATION_JSON) + public String getSalaryItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobItemPO param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySobItemWrapper(user)::getSalaryItemForm, param); + } + + + /**********************************钖祫璐﹀鐨勮柂璧勯」鐩 end*********************************/ diff --git a/src/com/engine/salary/wrapper/ExtEmpWrapper.java b/src/com/engine/salary/wrapper/ExtEmpWrapper.java index f78f0e2ec..fd936d61d 100644 --- a/src/com/engine/salary/wrapper/ExtEmpWrapper.java +++ b/src/com/engine/salary/wrapper/ExtEmpWrapper.java @@ -2,15 +2,18 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.impl.ExtEmpServiceImpl; import com.engine.salary.util.page.PageInfo; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.User; import java.util.Collection; +import java.util.Map; /** * 绱涓撻」 @@ -46,4 +49,17 @@ public class ExtEmpWrapper extends Service { public ExtEmpPO detail(Long id) { return getExtEmpService(user).getById(id); } + + public XSSFWorkbook exportImportTemplate() { + return getExtEmpService(user).exportImportTemplate(); + } + + public Map previewImportExtEmp(ExtEmpImportParam param) { + return getExtEmpService(user).previewImportExtEmp(param); + } + + public Map importExtEmp(ExtEmpImportParam param) { + return getExtEmpService(user).importExtEmp(param); + } + } diff --git a/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java b/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java index 4d4885a73..7822f4404 100644 --- a/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java @@ -6,6 +6,7 @@ import com.engine.salary.biz.SalaryItemBiz; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.bo.SalaryFormulaBO; import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaDetailQueryParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaMockParam; import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; @@ -27,10 +28,7 @@ import org.apache.commons.collections4.CollectionUtils; import weaver.hrm.User; import weaver.servicefiles.DataSourceXML; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -83,12 +81,14 @@ public class SalaryFormulaWrapper extends Service { return getRemoteExcelService(user).fieldGroupList(param); } - public ExpressFormulaDTO detail(Long formulaId) { - List expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(formulaId)); + public ExpressFormulaDTO detail(SalaryFormulaDetailQueryParam queryParam) { + List expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(queryParam.getFormulaId())); if (CollectionUtils.isEmpty(expressFormulas)) { throw new SalaryRunTimeException("鑾峰彇鍏紡璇︽儏澶辫触"); } - return SalaryFormulaBO.convert2DTO(expressFormulas).get(0); + Map returnTypeMap = new HashMap<>(); + returnTypeMap.put(queryParam.getFormulaId(),queryParam.getReturnType()); + return SalaryFormulaBO.convert2DTO(expressFormulas, returnTypeMap).get(0); } public FormulaPO save(SalaryFormulaSaveParam salaryFormulaSaveParam) { @@ -111,6 +111,7 @@ public class SalaryFormulaWrapper extends Service { param.setSourceId("welfare"); //鑾峰彇绂忓埄绫昏柂璧勯」鐩 List list = getRemoteExcelService(user).fieldList(param.getSourceId(), param.getExtendParam()); + list = list.stream().filter(f -> !(f.getName().contains("姝e父缂寸撼") || f.getName().contains("琛ョ即") || f.getName().contains("琛ュ樊"))).collect(Collectors.toList()); //鎻愬彇鍑虹鍒╃被椤圭洰鍚嶇О for (FormulaVar formulaVar : list) { InsuranceAcctDetailImportFieldDTO insuranceAcctDetailImportFieldDTO = new InsuranceAcctDetailImportFieldDTO(); diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index 84355ade6..b1d43a044 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -192,7 +192,10 @@ public class SalaryItemWrapper extends Service { salaryItemFormDTO = SalaryItemBO.convert2FormDTO(salaryItemPO); expressFormula = getSalaryFormulaService(user).getExpressFormula(salaryItemPO.getFormulaId()); } - salaryItemFormDTO.setFormulaContent(Optional.ofNullable(expressFormula).map(ExpressFormula::getFormula).orElse("")); + String formulaContent = Optional.ofNullable(expressFormula).map(ExpressFormula::getFormula).orElse(""); + salaryItemFormDTO.setFormulaContent(formulaContent); + salaryItemFormDTO.setOriginFormulaContent(salaryItemFormDTO.getValueType().equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : ""); + salaryItemFormDTO.setOriginSqlContent(salaryItemFormDTO.getValueType().equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : ""); } return salaryItemFormDTO; } diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index 096d9a395..1fbe0e0e0 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -11,8 +11,10 @@ import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO; import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam; import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO; +import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; @@ -168,4 +170,11 @@ public class SalarySobItemWrapper extends Service { } return list; } + + /** + * 钖祫椤圭洰鐨勮鎯 + */ + public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) { + return getSalarySobItemService(user).getSalaryItemForm(param); + } } diff --git a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java index d5d7a68cf..74f06fac6 100644 --- a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java @@ -2,8 +2,10 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryBill.bo.SalaryBillItemNameBO; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.param.*; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; @@ -65,6 +67,10 @@ public class SalaryTemplateWrapper extends Service { return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + private SalaryBillItemNameService getSalaryBillItemNameService(User user) { + return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user); + } + /** * 宸ヨ祫鍗曟ā鏉垮垪琛 * @@ -239,6 +245,11 @@ public class SalaryTemplateWrapper extends Service { if (StringUtils.isNotEmpty(po.getSalaryItemSetting())) { salaryTemplateShowSetData = JsonUtil.parseList(po.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); } + // 琛ュ彂钖祫椤圭洰璁剧疆锛屽墠绔繚瀛樻椂闇瑕佷娇鐢 + List replenishSalaryTemplateSalaryItemSet = new ArrayList<>(); + if (StringUtils.isNotEmpty(po.getReplenishSalaryItemSetting())) { + replenishSalaryTemplateSalaryItemSet = JsonUtil.parseList(po.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); + } //鍚屾椤圭洰鍚嶇О List itemPOS = getSalaryItemService(user).listAll(); @@ -247,12 +258,35 @@ public class SalaryTemplateWrapper extends Service { // List groupPOS = getSalarySobItemGroupService(user).listBySalarySobId(po.getSalarySobId()); // Map groupIdNameMap = SalaryEntityUtil.convert2Map(groupPOS, SalarySobItemGroupPO::getId, SalarySobItemGroupPO::getName); + // 鑾峰彇宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕淇℃伅 + Map itemShowNameMap; + Map salaryBillItemNameDTOMap = Collections.emptyMap(); + if (id != null){ + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(0).build()); + itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + // 鑾峰彇钖祫椤圭洰淇℃伅 + List salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList); + salaryBillItemNameDTOMap = SalaryEntityUtil.convert2Map(salaryBillItemNameDTOS, SalaryBillItemNameDTO::getSalaryItemId); + } else { + itemShowNameMap = Collections.emptyMap(); + } + if (CollectionUtils.isNotEmpty(salaryTemplateShowSetData)) { salaryTemplateShowSetData.stream() //鎺掗櫎浜哄憳娑堟伅 .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) .forEach(data -> { - data.getItems().forEach(item -> item.setName(itemIdNameMap.getOrDefault(Long.valueOf(item.getSalaryItemId()), item.getName()))); + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + item.setOriginName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "锛" + itemIdNameMap.getOrDefault(salaryItemId, item.getName()) +"锛"); + }else{ + item.setSalaryItemShowName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + } + }); }); } @@ -262,6 +296,8 @@ public class SalaryTemplateWrapper extends Service { .vars(Arrays.stream(SalaryTemplateVarEnum.values()).map(SalaryTemplateVarEnum::getValue).collect(Collectors.toList())) .salaryTemplateShowSet(salaryTemplateShowSet) .salaryTemplateSalaryItemSet(salaryTemplateShowSetData) + .replenishSalaryTemplateSalaryItemSet(replenishSalaryTemplateSalaryItemSet) + .salaryBillItemNameSet(salaryBillItemNameDTOMap) .build(); } @@ -388,6 +424,8 @@ public class SalaryTemplateWrapper extends Service { // 琛ュ彂钖祫椤圭洰璁剧疆 List replenishSalaryItemSetting; + // 琛ュ彂钖祫椤圭洰鏄剧ず鍚嶇О + Map salaryBillItemNameDTOMap = new HashMap<>(); if (id != null) { SalaryTemplatePO po = getSalaryTemplateService(user).getById(id); if (po == null) { @@ -399,13 +437,30 @@ public class SalaryTemplateWrapper extends Service { // 鍚屾琛ュ彂钖祫椤圭洰鍚嶇О List itemPOS = getSalaryItemService(user).listAll(); Map itemIdNameMap = SalaryEntityUtil.convert2Map(itemPOS, SalaryItemPO::getId, SalaryItemPO::getName); + // 鑾峰彇宸ヨ祫鍗曡柂璧勯」鐩睍绀哄悕淇℃伅 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(1).build()); + Map itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + // 鑾峰彇钖祫椤圭洰淇℃伅 + List salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList); + salaryBillItemNameDTOMap = SalaryEntityUtil.convert2Map(salaryBillItemNameDTOS, SalaryBillItemNameDTO::getSalaryItemId); + if (CollectionUtils.isNotEmpty(replenishSalaryItemSetting)) { replenishSalaryItemSetting.stream() //鎺掗櫎浜哄憳娑堟伅 - .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) - .forEach(data -> { - data.getItems().forEach(item -> item.setName(itemIdNameMap.getOrDefault(Long.valueOf(item.getSalaryItemId()), item.getName()))); - }); + .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) + .forEach(data -> { + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + item.setOriginName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "(" + itemIdNameMap.getOrDefault(salaryItemId, item.getName()) + ")"); + }else{ + item.setSalaryItemShowName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + } + }); + }); } } else { replenishSalaryItemSetting = getReplenishSalaryItemSet(replenishFormQueryParam.getSalarySobId()); @@ -417,6 +472,7 @@ public class SalaryTemplateWrapper extends Service { return SalaryTemplateReplenishFormDTO.builder() .id(id) .replenishSalaryTemplateSalaryItemSet(replenishSalaryItemSetting) + .salaryBillItemNameSet(salaryBillItemNameDTOMap) .build(); } @@ -430,7 +486,7 @@ public class SalaryTemplateWrapper extends Service { Boolean isReplenish = Optional.ofNullable(param.getIsReplenish()) .orElse(false); List salaryItemSet - = getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), isReplenish); + = getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), param.getSalaryTemplateId(), isReplenish); Long groupId = param.getGroupId(); return salaryItemSet.stream() .filter(s -> Objects.equals(s.getGroupId(), groupId + "")) @@ -452,11 +508,15 @@ public class SalaryTemplateWrapper extends Service { public List getSalaryGroupSet(SalaryBillSalaryGroupQueryParam param) { Boolean isReplenish = Optional.ofNullable(param.getIsReplenish()) .orElse(false); - return getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), isReplenish) + return getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), param.getSalaryTemplateId(), isReplenish) .stream() .filter(group -> !Optional.ofNullable(param.getExistSalaryGroupIds()).orElse(Collections.emptyList()) .contains(group.getGroupId()) ) .collect(Collectors.toList()); } + + public void saveItemShowName(List saveList) { + getSalaryBillItemNameService(user).saveItemShowName(saveList); + } }