Merge branch 'release/个税&业务线' into custom/钱智

This commit is contained in:
钱涛 2025-06-19 11:05:53 +08:00
commit 490e6ab0fe
48 changed files with 988 additions and 128 deletions

View File

@ -1,5 +1,5 @@
log=false
defaultCloseNonStandard149=true
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
version=3.0.2.2504.01
version=3.0.2.2504.03
openFormulaForcedEditing=false

View File

@ -0,0 +1,24 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);
/

View File

@ -0,0 +1,24 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);
/

View File

@ -0,0 +1,24 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);
/

View File

@ -0,0 +1,10 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);

View File

@ -34,8 +34,8 @@ CREATE TABLE hrsa_push_record_detail
)
/
ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000);
ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000)
/
ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000);
ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000)
/

View File

@ -1,5 +1,5 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0)
/

View File

@ -0,0 +1,18 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0)
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0)
/

View File

@ -0,0 +1,10 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);

View File

@ -0,0 +1,18 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0)
go
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0)
go

View File

@ -0,0 +1,24 @@
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158200, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '当期收入额', 'dividendsIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158201, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '免税收入', 'dividendsFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158202, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '准予扣除的捐赠额', 'dividendsAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158203, NULL, NULL, NULL, 0, 'all_teams', '1', '800', '减免税额', 'dividendsTaxDeduction', 'string', 'jmse', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158204, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '本期收入', 'listedCompanyIncome', 'number', 'sre', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158206, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '免税收入', 'listedCompanyFreeIncome', 'number', 'mssd', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158207, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '准予扣除的捐赠额', 'listedCompanyAllowedDonation', 'number', 'zykcjze', NULL, 0);
/
INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (805915446042158208, NULL, NULL, NULL, 0, 'all_teams', '1', '810', '减免税额', 'listedCompanyTaxDeduction', 'string', 'jmse', NULL, 0);
/

View File

@ -62,6 +62,11 @@ public class EmployeeDeclareRequest {
// *任职受雇类型
EmploymentTypeEnum employmentTypeEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getEmploymentType(), EmploymentTypeEnum.class);
employeeInfoMap.put("sfgy", employmentTypeEnum == null ? "" : employmentTypeEnum.getDefaultLabel());
//其他情况说明qtqksm有3个选择的值可选择"扣缴申报利息股息红利所得”、“扣缴申报偶然所得”、”申报其他所得”
//一般劳务所得处理可以统一用申报其他所得作为默认就好
if (employmentTypeEnum == EmploymentTypeEnum.OTHER) {
employeeInfoMap.put("qtqksm", "申报其他所得");
}
// 入职年度就业情形
employeeInfoMap.put("rzndjyqk", employeeDeclare.getEmploymentFirstYear());
// *手机号码

View File

@ -630,7 +630,8 @@ public class SalaryBillBO {
} else {
for (Object keyName : e.keySet()) {
if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) {
boolean isHide = (isHideNull && StringUtils.isEmpty(e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString()))
String itemValue = Util.null2String(e.get(keyName.toString()));
boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue))
||
(isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString())
&& BigDecimal.ZERO.compareTo(new BigDecimal(e.getOrDefault(keyName.toString(), "0").toString())) == 0);
@ -641,7 +642,7 @@ public class SalaryBillBO {
emailContent.append("</th>");
emailContent.append("<td style=\"padding: 16px 24px;display: table-cell;flex: 1;color: #000000d9;font-size: 12px;line-height: 1.5715;word-break: break-word;overflow-wrap: break-word;border-collapse: collapse;border: 1px solid rgba(0,0,0,.06);\">");
emailContent.append(e.get(keyName.toString()));
emailContent.append(itemValue.replaceAll("null", ""));
emailContent.append("</td>");
}
break;
@ -710,7 +711,8 @@ public class SalaryBillBO {
SalaryTemplateSalaryItemListDTO salaryItem = itemPartition.get(i);
for (Object keyName : e.keySet()) {
if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) {
boolean isHide = (isHideNull && StringUtils.isEmpty(e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString()))
String itemValue = Util.null2String(e.get(keyName.toString()));
boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue))
||
(isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString())
&& BigDecimal.ZERO.compareTo(new BigDecimal(e.getOrDefault(keyName.toString(), "0").toString())) == 0);
@ -721,7 +723,7 @@ public class SalaryBillBO {
emailContent.append("</th>");
emailContent.append("<td style=\"padding: 16px 24px;display: table-cell;flex: 1;color: #000000d9;font-size: 12px;line-height: 1.5715;word-break: break-word;overflow-wrap: break-word;border-collapse: collapse;border: 1px solid rgba(0,0,0,.06);\">");
emailContent.append(e.get(keyName.toString()));
emailContent.append(itemValue.replaceAll("null", ""));
emailContent.append("</td>");
}
break;

View File

@ -122,6 +122,9 @@ public class SalaryCalcTax {
// 综合所得
requestParam.put("zhsd", buildZHSDRequestParam(salaryAcctTaxAgents, salaryAcctEmployees,
salaryAcctResultValueMap, taxReportColumnMap, salarySobTaxReportRuleMap, employeeDeclares));
// 综合所得
requestParam.put("flsd", buildFLSDRequestParam(salaryAcctTaxAgents, salaryAcctEmployees,
salaryAcctResultValueMap, taxReportColumnMap, salarySobTaxReportRuleMap, employeeDeclares));
resultMap.put(taxAgent.getId(), requestParam);
}
@ -196,4 +199,43 @@ public class SalaryCalcTax {
}
return requestParam;
}
private Map<String, Object> buildFLSDRequestParam(List<SalaryAcctTaxAgentPO> salaryAcctTaxAgents,
List<SalaryAcctEmployeePO> salaryAcctEmployees,
Map<Long, List<SalaryAcctResultPO>> salaryAcctResultValueMap,
Map<String, List<TaxReportColumnPO>> taxReportColumnMap,
Map<String, SalarySobTaxReportRulePO> salarySobTaxReportRuleMap,
List<EmployeeDeclarePO> employeeDeclares) {
Map<String, List<SalaryAcctEmployeePO>> incomeCategoryKeySalaryAcctEmployeeMap = SalaryEntityUtil
.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getIncomeCategory);
Map<String, Object> requestParam = new HashMap<>();
for (SalaryAcctTaxAgentPO salaryAcctTaxAgent : salaryAcctTaxAgents) {
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum
.parseByValue(salaryAcctTaxAgent.getIncomeCategory());
List<TaxReportColumnPO> taxReportColumns = taxReportColumnMap.get(incomeCategoryEnum.getValue().toString());
List<SalaryAcctEmployeePO> subSalaryAcctEmployees = incomeCategoryKeySalaryAcctEmployeeMap.get(incomeCategoryEnum.getValue().toString());
Map<Long, SalaryAcctEmployeePO> salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(subSalaryAcctEmployees, SalaryAcctEmployeePO::getEmployeeId);
SalaryCalcTaxRequest salaryCalcTaxRequest = new SalaryCalcTaxRequest(salaryAcctEmployeeMap,
salaryAcctResultValueMap, taxReportColumns, salarySobTaxReportRuleMap, employeeDeclares);
switch (incomeCategoryEnum) {
case CLASSIFIED_INCOME_LISTED_COMPANY_DIVIDENDS_BONUSES:
List<Map<String, Object>> ssgsgxhllb = salaryCalcTaxRequest.buildRequestParams(IncomeCategoryEnum.CLASSIFIED_INCOME_LISTED_COMPANY_DIVIDENDS_BONUSES,
employeeDeclares, salaryAcctEmployeeMap, salaryAcctResultValueMap);
requestParam.put("ssgsgxhllb", ssgsgxhllb);
break;
case CLASSIFIED_INCOME_OTHER_INTEREST_DIVIDENDS_BONUSES:
List<Map<String, Object>> lxgxhllb = salaryCalcTaxRequest.buildRequestParams(IncomeCategoryEnum.CLASSIFIED_INCOME_OTHER_INTEREST_DIVIDENDS_BONUSES,
employeeDeclares, salaryAcctEmployeeMap, salaryAcctResultValueMap);
requestParam.put("lxgxhllb", lxgxhllb);
break;
default:
break;
}
}
return requestParam;
}
}

View File

@ -200,7 +200,7 @@ public class SalaryCalcTaxRequest {
employeeDeclares, salaryAcctEmployeeMap, salaryAcctResultValueMap);
}
private List<Map<String, Object>> buildRequestParams(IncomeCategoryEnum incomeCategoryEnum,
public List<Map<String, Object>> buildRequestParams(IncomeCategoryEnum incomeCategoryEnum,
List<EmployeeDeclarePO> employeeDeclares,
Map<Long, SalaryAcctEmployeePO> salaryAcctEmployeeMap,
Map<Long, List<SalaryAcctResultPO>> salaryAcctResultValueMap) {

View File

@ -144,7 +144,7 @@ public class SalarySobItemAggregateBO {
.canEdit(openFormulaForcedEditing || Objects.equals(salaryItemPO.getCanEdit(), 1))
.canDelete(openFormulaForcedEditing || salaryItemPO.getCanDelete() == null || Objects.equals(salaryItemPO.getCanDelete(), 1))
.width(salaryItemPO.getWidth())
.defaultValue(salaryItemPO.getDefaultValue())
.defaultValue(salarySobItemPO.getDefaultValue())
.build());
}
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.taxdeclaration.bo;
import cn.hutool.core.util.NumberUtil;
import com.engine.salary.entity.datacollection.po.*;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
@ -35,7 +36,7 @@ public class TaxDeclarationRequest {
List<TaxDeclarationPO> taxDeclarations,
List<TaxDeclarationValuePO> taxDeclarationValues,
List<EmployeeDeclarePO> employeeDeclares,
Map<TaxFreeTypeEnum, Map<String,? extends List>> taxFreeMap) {
Map<TaxFreeTypeEnum, Map<String, ? extends List>> taxFreeMap) {
Map<String, Map<String, Object>> objRequestParam = Maps.newHashMap();
Map<String, List<Map<String, Object>>> listRequestParam = Maps.newHashMap();
Map<String, List<TaxReportColumnPO>> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
@ -75,6 +76,7 @@ public class TaxDeclarationRequest {
} else if (incomeCategoryEnum == IncomeCategoryEnum.COMPENSATION_FOR_DISMISS) {
// 解除劳动合同一次性补偿金
List<Map<String, Object>> employeeRequestParams = listRequestParam.computeIfAbsent("jcldhtycxbcjlb", k -> Lists.newArrayList());
employeeRequestParam.put("sfzdscmsfb", "");
employeeRequestParams.add(employeeRequestParam);
} else if (incomeCategoryEnum == IncomeCategoryEnum.INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE) {
// 个人股权激励收入
@ -125,6 +127,7 @@ public class TaxDeclarationRequest {
} else if (incomeCategoryEnum == IncomeCategoryEnum.REMUNERATION_FOR_AUTHOR) {
// 稿酬所得
List<Map<String, Object>> employeeRequestParams = listRequestParam.computeIfAbsent("gcsdlb", k -> Lists.newArrayList());
employeeRequestParam.put("sfzdscmsfb", "");
employeeRequestParams.add(employeeRequestParam);
} else if (incomeCategoryEnum == IncomeCategoryEnum.ROYALTIES) {
// 特许权使用费所得
@ -143,7 +146,8 @@ public class TaxDeclarationRequest {
}
private static void buildOtherDeductionDetailParams(Map<TaxFreeTypeEnum, Map<String, ? extends List>> taxFreeMap, Map<String, List<Map<String, Object>>> listRequestParam, EmployeeDeclarePO employeeDeclare, IncomeCategoryEnum incomeCategoryEnum, Map<String, Object> employeeRequestParam) {
if (new BigDecimal(employeeRequestParam.getOrDefault("mssd", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String mssd = employeeRequestParam.getOrDefault("mssd", "0").toString();
if (NumberUtil.isNumber(mssd) && new BigDecimal(mssd).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> freeIncomeMap = taxFreeMap.get(TaxFreeTypeEnum.FREE_INCOME);
List<FreeIncomePO> poList = (List<FreeIncomePO>) freeIncomeMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(poList)) {
@ -167,10 +171,8 @@ public class TaxDeclarationRequest {
}
}
String string = employeeRequestParam.getOrDefault("syjkbx", "0").toString();
System.out.println();
if (new BigDecimal(employeeRequestParam.getOrDefault("syjkbx", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String syjkbx = employeeRequestParam.getOrDefault("syjkbx", "0").toString();
if (NumberUtil.isNumber(syjkbx) && new BigDecimal(syjkbx).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> healthInsuranceMap = taxFreeMap.get(TaxFreeTypeEnum.HEALTH_INSURANCE);
List<HealthInsurancePO> pos = (List<HealthInsurancePO>) healthInsuranceMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(pos)) {
@ -185,7 +187,7 @@ public class TaxDeclarationRequest {
map.put("zzhm", employeeDeclare.getCardNum());
// 所得项目
map.put("sdxm", incomeCategoryEnum.getDefaultLabel());
map.put("bdsxrq",SalaryDateUtil.getFormatLocalDate(healthInsurancePO.getEffectiveDate()) );
map.put("bdsxrq", SalaryDateUtil.getFormatLocalDate(healthInsurancePO.getEffectiveDate()));
map.put("sysbm", healthInsurancePO.getIdentificationNumber());
map.put("ndbf", healthInsurancePO.getYearPremium());
map.put("ydbf", healthInsurancePO.getMonthPremium());
@ -195,7 +197,9 @@ public class TaxDeclarationRequest {
listRequestParam.put("syjkbxfblb", paramMaps);
}
}
if (new BigDecimal(employeeRequestParam.getOrDefault("syylbx", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String syylbx = employeeRequestParam.getOrDefault("syylbx", "0").toString();
if (NumberUtil.isNumber(syylbx) && new BigDecimal(syylbx).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> posMap = taxFreeMap.get(TaxFreeTypeEnum.ENDOWMENT_INSURANCE);
List<EndowmentInsurancePO> pos = (List<EndowmentInsurancePO>) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(pos)) {
@ -221,7 +225,9 @@ public class TaxDeclarationRequest {
listRequestParam.put("syjkbxfblb", paramMaps);
}
}
if (new BigDecimal(employeeRequestParam.getOrDefault("zykcjze", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String zykcjze = employeeRequestParam.getOrDefault("zykcjze", "0").toString();
if (NumberUtil.isNumber(zykcjze) && new BigDecimal(zykcjze).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> posMap = taxFreeMap.get(TaxFreeTypeEnum.GRANT_DONATION);
List<GrantDonationPO> pos = (List<GrantDonationPO>) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(pos)) {
@ -251,7 +257,8 @@ public class TaxDeclarationRequest {
}
}
if (new BigDecimal(employeeRequestParam.getOrDefault("jmse", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String jmse = employeeRequestParam.getOrDefault("jmse", "0").toString();
if (NumberUtil.isNumber(jmse) && new BigDecimal(jmse).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> posMap = taxFreeMap.get(TaxFreeTypeEnum.DERATE_DEDUCTION);
List<DerateDeductionPO> pos = (List<DerateDeductionPO>) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(pos)) {
@ -275,9 +282,10 @@ public class TaxDeclarationRequest {
}
}
if (new BigDecimal(employeeRequestParam.getOrDefault("qt", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
String qt = employeeRequestParam.getOrDefault("qt", "0").toString();
if (NumberUtil.isNumber(qt) && new BigDecimal(qt).compareTo(new BigDecimal("0")) > 0) {
Map<String, ? extends List> posMap = taxFreeMap.get(TaxFreeTypeEnum.OTHER_DERATE_DEDUCTION);
List<OtherDerateDeductionPO> pos = (List<OtherDerateDeductionPO>) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
List<OtherDerateDeductionPO> pos = (List<OtherDerateDeductionPO>) posMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
if (CollectionUtils.isNotEmpty(pos)) {
employeeRequestParam.put("bz", pos.get(0).getRemark());
}
@ -313,6 +321,45 @@ public class TaxDeclarationRequest {
}
public static Map<String, Object> convert2flsdRequestParam(List<TaxReportColumnPO> taxReportColumns,
List<TaxDeclarationPO> taxDeclarations,
List<TaxDeclarationValuePO> taxDeclarationValues,
List<EmployeeDeclarePO> employeeDeclares) {
Map<String, Map<String, Object>> objRequestParam = Maps.newHashMap();
Map<String, List<Map<String, Object>>> listRequestParam = Maps.newHashMap();
Map<String, List<TaxReportColumnPO>> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
Map<Long, List<TaxDeclarationValuePO>> taxDeclarationValueMap = SalaryEntityUtil.group2Map(taxDeclarationValues, TaxDeclarationValuePO::getTaxDeclarationId);
for (TaxDeclarationPO taxDeclaration : taxDeclarations) {
List<TaxDeclarationValuePO> values = taxDeclarationValueMap.get(taxDeclaration.getId());
for (TaxDeclarationValuePO taxDeclarationValue : values) {
EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclarationValue.getEmployeeId());
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory());
if (employeeDeclare == null || incomeCategoryEnum == null) {
continue;
}
List<TaxReportColumnPO> taxReportColumnList = taxReportColumnMap.get(Util.null2String(incomeCategoryEnum.getValue()));
Map<String, Object> employeeRequestParam = convert2RequestParam(incomeCategoryEnum, taxReportColumnList, taxDeclarationValue, employeeDeclare);
if (incomeCategoryEnum == IncomeCategoryEnum.CLASSIFIED_INCOME_LISTED_COMPANY_DIVIDENDS_BONUSES) {
// 上市公司股息红利所得沪市深市创业板
List<Map<String, Object>> employeeRequestParams = listRequestParam.computeIfAbsent("ssgsgxhllb", k -> Lists.newArrayList());
employeeRequestParams.add(employeeRequestParam);
}
if (incomeCategoryEnum == IncomeCategoryEnum.CLASSIFIED_INCOME_OTHER_INTEREST_DIVIDENDS_BONUSES) {
// 其他利息股息红利所得
List<Map<String, Object>> employeeRequestParams = listRequestParam.computeIfAbsent("lxgxhllb", k -> Lists.newArrayList());
employeeRequestParams.add(employeeRequestParam);
}
}
}
Map<String, Object> requestParam = Maps.newHashMap();
requestParam.putAll(objRequestParam);
requestParam.putAll(listRequestParam);
return requestParam;
}
public static Map<String, Object> convert2fjmsdRequestParam(List<TaxReportColumnPO> taxReportColumns,
List<TaxDeclarationPO> taxDeclarations,
List<TaxDeclarationValuePO> taxDeclarationValues,

View File

@ -38,6 +38,10 @@ public class TaxDeclarationListDTO {
@TableTitle(title = "薪资类型", dataIndex = "incomeCategory", key = "incomeCategory")
private String incomeCategory;
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@TableTitle(title = "税款所属期", dataIndex = "taxCycle", key = "taxCycle")
private Date taxCycle;
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@TableTitle(title = "薪资所属月", dataIndex = "salaryMonth", key = "salaryMonth")
private Date salaryMonth;
@ -48,10 +52,6 @@ public class TaxDeclarationListDTO {
@TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
private String taxAgentName;
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@TableTitle(title = "税款所属期", dataIndex = "taxCycle", key = "taxCycle")
private Date taxCycle;
//@TableTitle(title = "操作人id", dataIndex = "operateEmployeeId", key = "operateEmployeeId")
private Long operateEmployeeId;

View File

@ -7,6 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**

View File

@ -110,6 +110,13 @@ public class TaxDeclarationPO {
LocalDateRange taxMonths;
//"开始日期
private Date taxCycleFromDate;
//结束日期
private Date taxCycleEndDate;
private Collection<Long> taxAgentIds;
private Set<String> opts;

View File

@ -1,5 +1,6 @@
package com.engine.salary.enums.salarysob;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.engine.salary.constant.SzyhApiConstant;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
@ -673,6 +674,88 @@ public enum IncomeCategoryEnum implements BaseEnum<Integer> {
return resultMap;
}
},
CLASSIFIED_INCOME_LISTED_COMPANY_DIVIDENDS_BONUSES(810, "0810", "上市公司股息红利所得(沪市、深市、创业板)", DeclareReportTypeEnum.CLASSIFIED_INCOME, 181945) {
@Override
public void parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
List<GetDeclareTaxResultFeedbackResponse.Body.flsd.flsdssjgdx.flsdscbw> flsd = declareTaxResultFeedbackResponse.getBody().getFlsd().getSsgsgxhllb().getSscglb();
List<List<Object>> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.flsd.flsdssjgdx.flsdscbw.class, flsd);
result.put(this.getDefaultLabel(), sheetData);
}
@Override
public Map<Long, SalarySobTaxRuleDTO> parseGetASynIndividualIncomeTaxFeedbackResponse(GetASynIndividualIncomeTaxFeedbackResponse declareTaxResultFeedbackResponse, List<EmployeeDeclarePO> employeeDeclares, SalarySobTaxRuleDTO taxRuleDTO) {
checkGetASynIndividualIncomeTaxFeedbackResponse(declareTaxResultFeedbackResponse);
GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx ssgsgxhllb = declareTaxResultFeedbackResponse.getBody().getFlsd().getSsgsgxhllb();
checkSSSBYYLBResponse(ssgsgxhllb.getSssbyylb());
Gson gs = new Gson();
List<SalarySobTaxRuleDTO.TaxRuleDTO> taxRules = taxRuleDTO.getTaxRules();
List<GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result> sscglb = ssgsgxhllb.getSscglb();
Map<String, GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result> idNoResultMap = SalaryEntityUtil.convert2Map(sscglb, GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result::getZzhm);
Map<Long, SalarySobTaxRuleDTO> resultMap = new HashMap<>();
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result result = idNoResultMap.get(employeeDeclare.getCardNum());
if (result == null) {
continue;
}
taxRules.forEach(rule -> {
String getter = "get" + rule.getTaxIndex().substring(0, 1).toUpperCase() + rule.getTaxIndex().substring(1);
try {
Method method = result.getClass().getMethod(getter);
Object invoke = method.invoke(result);
rule.setValue(Util.null2String(invoke));
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
log.error("getTaxErr no such method {}", getter, ex);
}
});
resultMap.put(employeeDeclare.getEmployeeId(), gs.fromJson(gs.toJson(taxRuleDTO), (Type) SalarySobTaxRuleDTO.class));
}
return resultMap;
}
},
CLASSIFIED_INCOME_OTHER_INTEREST_DIVIDENDS_BONUSES(800, "0800", "其他利息股息红利所得", DeclareReportTypeEnum.CLASSIFIED_INCOME, 181945) {
@Override
public void parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
List<GetDeclareTaxResultFeedbackResponse.Body.flsd.flsdssjgdx.flsdscbw> flsd = declareTaxResultFeedbackResponse.getBody().getFlsd().getLxgxhllb().getSscglb();
List<List<Object>> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.flsd.flsdssjgdx.flsdscbw.class, flsd);
result.put(this.getDefaultLabel(), sheetData);
}
@Override
public Map<Long, SalarySobTaxRuleDTO> parseGetASynIndividualIncomeTaxFeedbackResponse(GetASynIndividualIncomeTaxFeedbackResponse declareTaxResultFeedbackResponse, List<EmployeeDeclarePO> employeeDeclares, SalarySobTaxRuleDTO taxRuleDTO) {
checkGetASynIndividualIncomeTaxFeedbackResponse(declareTaxResultFeedbackResponse);
GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx ssgsgxhllb = declareTaxResultFeedbackResponse.getBody().getFlsd().getLxgxhllb();
checkSSSBYYLBResponse(ssgsgxhllb.getSssbyylb());
Gson gs = new Gson();
List<SalarySobTaxRuleDTO.TaxRuleDTO> taxRules = taxRuleDTO.getTaxRules();
List<GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result> sscglb = ssgsgxhllb.getSscglb();
Map<String, GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result> idNoResultMap = SalaryEntityUtil.convert2Map(sscglb, GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result::getZzhm);
Map<Long, SalarySobTaxRuleDTO> resultMap = new HashMap<>();
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
GetASynIndividualIncomeTaxFeedbackResponse.Body.flsd.flsdssjgdx.result result = idNoResultMap.get(employeeDeclare.getCardNum());
if (result == null) {
continue;
}
taxRules.forEach(rule -> {
String getter = "get" + rule.getTaxIndex().substring(0, 1).toUpperCase() + rule.getTaxIndex().substring(1);
try {
Method method = result.getClass().getMethod(getter);
Object invoke = method.invoke(result);
rule.setValue(Util.null2String(invoke));
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
log.error("getTaxErr no such method {}", getter, ex);
}
});
resultMap.put(employeeDeclare.getEmployeeId(), gs.fromJson(gs.toJson(taxRuleDTO), (Type) SalarySobTaxRuleDTO.class));
}
return resultMap;
}
};
@ -711,11 +794,19 @@ public enum IncomeCategoryEnum implements BaseEnum<Integer> {
}
List<GetASynIndividualIncomeTaxFeedbackResponse.Body.rysbsb> rysbsblb = feedbackResponse.getBody().getRysbsblb();
if (CollectionUtil.isNotEmpty(rysbsblb)) {
String err = rysbsblb.stream().map(GetASynIndividualIncomeTaxFeedbackResponse.Body.rysbsb::getSbyy).collect(Collectors.joining(";"));
String err = rysbsblb.stream().map(sb -> Util.null2String(sb.getXm()) + Util.null2String(sb.getSbyy())).collect(Collectors.joining(";"));
throw new OnlineCalculateTaxException(err);
}
}
private static void checkSSSBYYLBResponse(List<GetASynIndividualIncomeTaxFeedbackResponse.Body.sssbyy> sssbyylb) {
if(CollUtil.isNotEmpty(sssbyylb)){
String err = sssbyylb.stream().map(sssbyy -> sssbyy.getXm() + sssbyy.getCwxx()).collect(Collectors.joining(","));
throw new OnlineCalculateTaxException(err);
}
}
public Map<String, List<List<Object>>> parseGetCompanyIncomesResponse(Map<String, List<List<Object>>> result, GetCompanyIncomesResponse response) {
List<GetCompanyIncomesResponse.sfmx> sfmx = Optional.ofNullable(response.getBody().getSfmx())
.orElse(new ArrayList<>())

View File

@ -571,7 +571,6 @@ public class DateTimeServiceImpl implements DateTimeService {
cale.set(cale.get(Calendar.YEAR), month, 1);
String lastday = formatTemp.format(cale.getTime());
System.out.println(lastday);
return new DataType(DataType.STRING, lastday);
}

View File

@ -11,6 +11,7 @@
e.workcode,
e.certificatenum as idNo,
e.accounttype as accountType,
e.sex as sex,
'false' as extEmp
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
@ -21,6 +22,7 @@
<select id="getEmployeeByIds" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.sex as sex,
e.certificatenum as idNo,
e.status as status,
e.workcode as workcode,
@ -42,6 +44,7 @@
resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.sex as sex,
e.certificatenum as idNo,
e.status as status,
e.workcode as workcode,
@ -123,6 +126,7 @@
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.sex as sex,
e.certificatenum as idNo,
e.workcode as workcode,
d.departmentname as departmentName,
@ -229,6 +233,7 @@
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.sex as sex,
e.certificatenum as idNo,
e.workcode as workcode,
d.departmentname as departmentName,
@ -283,6 +288,7 @@
e.lastname as username,
e.status as status,
e.workcode as workcode,
e.sex as sex,
e.certificatenum as idNo,
e.companystartdate as companystartdate,
e.mobile as mobile,
@ -304,6 +310,7 @@
e.status as status,
e.workcode as workcode,
e.certificatenum as idNo,
e.sex as sex,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.accounttype as accountType,
@ -324,6 +331,7 @@
e.status as status,
e.workcode as workcode,
e.certificatenum as idNo,
e.sex as sex,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.departmentid as departmentId,
@ -487,6 +495,7 @@
e.lastname as username,
e.status as status,
e.certificatenum as idNo,
e.sex as sex,
e.workcode as workcode,
e.companystartdate as companystartdate,
e.mobile as mobile,
@ -562,6 +571,7 @@
e.lastname as username,
e.status as status,
e.certificatenum as idNo,
e.sex as sex,
e.workcode as workcode,
d.departmentname as departmentName,
d.id as departmentId,

View File

@ -69,6 +69,12 @@
<if test="taxMonths != null and taxMonths.endDate != null">
AND tax_cycle <![CDATA[ <= ]]> #{taxMonths.endDate}
</if>
<if test="taxCycleFromDate != null">
AND tax_cycle <![CDATA[ >= ]]> #{taxCycleFromDate}
</if>
<if test="taxCycleEndDate != null">
AND tax_cycle <![CDATA[ <= ]]> #{taxCycleEndDate}
</if>
<if test="taxAgentIds != null and taxAgentIds.size()>0">
AND tax_agent_id IN
<foreach collection="taxAgentIds" open="(" item="id" separator="," close=")">

View File

@ -46,10 +46,10 @@ public class GetASynIndividualIncomeTaxFeedbackResponse extends BaseResponse {
* 综合所得 必填 见综合所得计算结果
*/
private zhsd zhsd;
// /**
// * 分类所得 必填 见分类所得计算结果
// */
// private flsd flsd;
/**
* 分类所得 必填 见分类所得计算结果
*/
private flsd flsd;
/**
* 非居民所得 必填 见非居民所得计算结果
*/
@ -543,6 +543,193 @@ public class GetASynIndividualIncomeTaxFeedbackResponse extends BaseResponse {
}
/**
* 分类所得
*/
@Data
public static class flsd {
/**
* 利息股息红利所得列表 必填null
*/
private flsdssjgdx lxgxhllb;
/**
* 股权转让所得列表 必填null
*/
private flsdssjgdx ggzrlb;
/**
* 其他财产转让所得列表 必填null
*/
private flsdssjgdx qtcczrlb;
/**
* 偶然所得列表 必填null
*/
private flsdssjgdx orsdlb;
/**
* 其他财产租赁列表 必填null
*/
private flsdssjgdx qtcczllb;
/**
* 上市公司股息红利 必填null
*/
private flsdssjgdx ssgsgxhllb;
/**
* 个人房屋出租所得列表 必填null
*/
private flsdssjgdx grfwczsdlb;
/**
* 随机赠送礼品列表 必填null
*/
private flsdssjgdx sjzslplb;
/**
* 三板市场股息红利所得 必填null
*/
private flsdssjgdx sbscgxhllb;
/**
* 证劵资金利息所得 必填null
*/
private flsdssjgdx zjzjlxlb;
/**
* 分类所得算税结果对象
*/
@Data
public static class flsdssjgdx {
/**
* 算税成功列表 参考输入报文非居民所得输出结果报文
*/
private List<result> sscglb;
/**
* 算税失败列表 参考输入报文非居民所得输出结果报文
*/
private List<result> sssblb;
/**
* 算税失败原因列表 参考算税失败原因对象
*/
private List<sssbyy> sssbyylb;
/**
* 算税总人数
*/
private int sszrs;
/**
* 算税失败总人数
*/
private int sssbrs;
/**
* 所得输出结果报文
*/
@Data
public static class result {
/**
* 是否明细申报 必填 是或者否
*/
private String sfmxsb;
/**
* 姓名 必填null 汇总申报返回空
*/
private String xm;
/**
* 证件类型名称 必填null 汇总申报返回空
*/
private String zzlx;
/**
* 证件号码 必填null 汇总申报返回空
*/
private String zzhm;
/**
* 收入额 必填
*/
private String sre;
/**
* 免税收入 必填
*/
private String mssd;
/**
* 财产原值 必填
*/
private String ccyz;
/**
* 允许扣除的税费 必填
*/
private String yxkcsf;
/**
* 投资抵扣 必填
*/
private String tzdk;
/**
* 其他 必填
*/
private String qt;
/**
* 备注 必填
*/
private String bz;
/**
* 减除费用 必填
*/
private String jcfy;
/**
* 减计比例 必填
*/
private String jjbl;
/**
* 准予扣除的捐赠额 必填
*/
private String zykcjze;
/**
* 税前扣除项目合计 必填
*/
private String sqkcxmhj;
/**
* 应纳税所得额 必填
*/
private String ynssde;
/**
* 应纳税额 必填
*/
private String ynse;
/**
* 减免税额 必填
*/
private String jmse;
/**
* 已缴税额 必填 无需填写该值按0处理
*/
private String ykjse;
/**
* 应扣缴税额 必填
*/
private String yingkjse;
/**
* 税率 必填
*/
private String sl;
/**
* 速算扣除数 必填
*/
private String sskcs;
/**
* 应补退税额 必填
*/
private String ybtse;
/**
* 分类所得名字 必填 分类所得薪金类别-利息股息红利所得股权转让所得其他财产转让所得偶然所得其他所得"
*/
private String sdxm;
/**
* 所得期间起 必填 YYYY-MM
*/
private String sdqjq;
/**
* 所得期间止 必填 YYYY-MM
*/
private String sdqjz;
}
}
}
@Data
public static class fjmsd {

View File

@ -47,10 +47,10 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
* 综合所得 必填 见综合所得计算结果
*/
private zhsd zhsd;
// /**
// * 分类所得 必填 见分类所得计算结果
// */
// private 对象 flsd;
/**
* 分类所得 必填 见分类所得计算结果
*/
private flsd flsd;
/**
* 非居民所得 必填 见非居民所得计算结果
*/
@ -657,6 +657,236 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
}
/**
* 分类所得
*/
@Data
public static class flsd {
/**
* 利息股息红利所得列表 必填null
*/
private flsdssjgdx lxgxhllb;
/**
* 股权转让所得列表 必填null
*/
private flsdssjgdx ggzrlb;
/**
* 其他财产转让所得列表 必填null
*/
private flsdssjgdx qtcczrlb;
/**
* 偶然所得列表 必填null
*/
private flsdssjgdx orsdlb;
/**
* 其他财产租赁列表 必填null
*/
private flsdssjgdx qtcczllb;
/**
* 上市公司股息红利 必填null
*/
private flsdssjgdx ssgsgxhllb;
/**
* 个人房屋出租所得列表 必填null
*/
private flsdssjgdx grfwczsdlb;
/**
* 随机赠送礼品列表 必填null
*/
private flsdssjgdx sjzslplb;
/**
* 三板市场股息红利所得 必填null
*/
private flsdssjgdx sbscgxhllb;
/**
* 证劵资金利息所得 必填null
*/
private flsdssjgdx zjzjlxlb;
/**
* 4.3.1.3.3.1分类所得算税结果对象
*/
@Data
public static class flsdssjgdx {
/**
* 算税成功列表 参考输入报文非居民所得输出结果报文
*/
private List<flsdscbw> sscglb;
/**
* 算税失败列表 参考输入报文非居民所得输出结果报文
*/
private List<flsdscbw> sssblb;
/**
* 失败原因列表 参考算税失败原因对象
*/
private List<rydbjgdx> sssbyylb;
/**
* 算税总人数
*/
private int sszrs;
/**
* 失败总人数
*/
private int sssbrs;
/**
* 所得输出结果报文
*/
@Data
public static class flsdscbw {
/**
* 是否明细申报 必填 是或者否
*/
private String sfmxsb;
/**
* 姓名 必填null 汇总申报返回空
*/
@SalaryTableColumn(text = "姓名", width = "10%", column = "xm")
@ExcelHead(title = "姓名", dataIndex = "xm")
private String xm;
/**
* 证件类型名称 必填null 汇总申报返回空
*/
@SalaryTableColumn(text = "证件类型", width = "10%", column = "zzlx")
@ExcelHead(title = "证件类型", dataIndex = "zzlx")
private String zzlx;
/**
* 证件号码 必填null 汇总申报返回空
*/
@SalaryTableColumn(text = "证件号码", width = "10%", column = "zzhm")
@ExcelHead(title = "证件号码", dataIndex = "zzhm")
private String zzhm;
/**
* 收入额 必填
*/
@SalaryTableColumn(text = "本期收入", width = "10%", column = "sre")
@ExcelHead(title = "本期收入", dataIndex = "sre")
private String sre;
/**
* 免税收入 必填
*/
@SalaryTableColumn(text = "本期免税收入", width = "10%", column = "mssd")
@ExcelHead(title = "本期免税收入", dataIndex = "mssd")
private String mssd;
/**
* 财产原值 必填
*/
@SalaryTableColumn(text = "财产原值", width = "10%", column = "ccyz")
@ExcelHead(title = "财产原值", dataIndex = "ccyz")
private String ccyz;
/**
* 允许扣除的税费 必填
*/
@SalaryTableColumn(text = "允许扣除的税费", width = "10%", column = "yxkcsf")
@ExcelHead(title = "允许扣除的税费", dataIndex = "yxkcsf")
private String yxkcsf;
/**
* 投资抵扣 必填
*/
@SalaryTableColumn(text = "投资抵扣", width = "10%", column = "tzdk")
@ExcelHead(title = "投资抵扣", dataIndex = "tzdk")
private String tzdk;
/**
* 其他 必填
*/
@SalaryTableColumn(text = "其他", width = "10%", column = "qt")
@ExcelHead(title = "其他", dataIndex = "qt")
private String qt;
/**
* 备注 必填
*/
@SalaryTableColumn(text = "备注", width = "10%", column = "bz")
@ExcelHead(title = "备注", dataIndex = "bz")
private String bz;
/**
* 减除费用 必填
*/
@SalaryTableColumn(text = "减除费用", width = "10%", column = "jcfy")
@ExcelHead(title = "减除费用", dataIndex = "jcfy")
private String jcfy;
/**
* 减计比例 必填
*/
@SalaryTableColumn(text = "减计比例", width = "10%", column = "jjbl")
@ExcelHead(title = "减计比例", dataIndex = "jjbl")
private String jjbl;
/**
* 准予扣除的捐赠额 必填
*/
@SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "zykcjze")
@ExcelHead(title = "准予扣除的捐赠额", dataIndex = "zykcjze")
private String zykcjze;
/**
* 税前扣除项目合计 必填
*/
@SalaryTableColumn(text = "税前扣除项目合计", width = "10%", column = "sqkcxmhj")
@ExcelHead(title = "税前扣除项目合计", dataIndex = "sqkcxmhj")
private String sqkcxmhj;
/**
* 应纳税所得额 必填
*/
@SalaryTableColumn(text = "应纳税所得额", width = "10%", column = "ynssde")
@ExcelHead(title = "应纳税所得额", dataIndex = "ynssde")
private String ynssde;
/**
* 应纳税额 必填
*/
@SalaryTableColumn(text = "应纳税额", width = "10%", column = "ynse")
@ExcelHead(title = "应纳税额", dataIndex = "ynse")
private String ynse;
/**
* 减免税额 必填
*/
@SalaryTableColumn(text = "减免税额", width = "10%", column = "jmse")
@ExcelHead(title = "减免税额", dataIndex = "jmse")
private String jmse;
/**
* 已缴税额 必填 无需填写该值按0处理
*/
@SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
@ExcelHead(title = "已缴税额", dataIndex = "ykjse")
private String ykjse;
/**
* 应扣缴税额 必填
*/
@SalaryTableColumn(text = "应扣缴税额", width = "10%", column = "yingkjse")
@ExcelHead(title = "应扣缴税额", dataIndex = "yingkjse")
private String yingkjse;
/**
* 税率 必填
*/
@SalaryTableColumn(text = "税率", width = "10%", column = "sl")
@ExcelHead(title = "税率", dataIndex = "sl")
private String sl;
/**
* 速算扣除数 必填
*/
@SalaryTableColumn(text = "速算扣除数", width = "10%", column = "sskcs")
@ExcelHead(title = "速算扣除数", dataIndex = "sskcs")
private String sskcs;
/**
* 应补退税额 必填
*/
@SalaryTableColumn(text = "应补退税额", width = "10%", column = "ybtse")
@ExcelHead(title = "应补退税额", dataIndex = "ybtse")
private String ybtse;
/**
* 分类所得名字 必填 分类所得薪金类别-利息股息红利所得股权转让所得其他财产转让所得偶然所得其他所得"
*/
private String sdxm;
/**
* 所得期间起 必填 YYYY-MM
*/
private String sdqjq;
/**
* 所得期间止 必填 YYYY-MM
*/
private String sdqjz;
}
}
}
@Data
public static class fjmsd {

View File

@ -45,6 +45,9 @@ public class SalaryStatisticsDataPerspectiveQueryParam extends BaseQueryParam {
//个税扣缴义务人配置
private List<Long> taxAgent;
@JsonIgnore
private List<Long> salarySob;
@JsonIgnore
//收入所得项目配置
private List<Integer> incomeCategory;

View File

@ -464,12 +464,21 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
if (reportPO.getTaxAgentSetting() != null) {
param.setTaxAgent(((List<Map>) JSON.parseArray(reportPO.getTaxAgentSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
if (reportPO.getSalarySobSetting() != null) {
param.setSalarySob(((List<Map>) JSON.parseArray(reportPO.getSalarySobSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
if (reportPO.getSubCompanySetting() != null) {
param.setSubCompany(((List<Map>) JSON.parseArray(reportPO.getSubCompanySetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
if (reportPO.getDepartSetting() != null) {
param.setDepart(((List<Map>) JSON.parseArray(reportPO.getDepartSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
if (reportPO.getPositionSetting() != null) {
param.setPosition(((List<Map>) JSON.parseArray(reportPO.getPositionSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
if (reportPO.getStatusSetting() != null) {
param.setStatus(((List<Map>) JSON.parseArray(reportPO.getStatusSetting(), Map.class)).stream().map(m -> m.get(key).toString()).collect(Collectors.toList()));
}
if (reportPO.getEmployeeSetting() != null) {
param.setEmployee(((List<Map>) JSON.parseArray(reportPO.getEmployeeSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
}
@ -499,7 +508,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
List<Long> finalSalaryAcctEmpIds = getSalaryAcctResultService(user).listAcctEmpIdByAcctEmpId(salaryAcctEmployeeIds);
Map<Long, List<SalaryAcctResultPO>> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId);
salaryAcctEmpResultMap.forEach((k, v) -> {
Map<String, String> collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), SalaryAcctResultPO::getResultValue, (key1, key2) -> key2));
Map<String, String> collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), p -> Util.null2String(p.getResultValue()), (key1, key2) -> key2));
resultMap.put(k, collect);
});
salaryAcctEmployeeIds.stream().forEach(id -> {

View File

@ -334,7 +334,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
sumRow.add(Util.null2String(countResult.get(weaTableColumnGroup.getColumn())));
}
} else {
sumRow.add(Util.null2String(countResult.get(weaTableColumnGroup.getColumn())));
sumRow.add("");
}
}
rowList.add(sumRow);

View File

@ -601,10 +601,14 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
Set<String> emptyNames = new HashSet<>();
for (PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
String name = pd.getName();
if("dismissDate".equals(name)){
continue;
}
Object srcValue = src.getPropertyValue(name);
// 此处判断可根据需求修改
if (srcValue == null) {
emptyNames.add(pd.getName());
emptyNames.add(name);
}
}
String[] result = new String[emptyNames.size()];

View File

@ -660,6 +660,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
ImmutableMap<String, String> requestParam = ImmutableMap.of("requestId", employeeDeclareRecord.getRequestId());
Map<String, String> header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret());
String res = HttpUtil.getRequest(url, header, requestParam);
log.info("人员报送反馈:{}", res);
DeclareEmployeeFeedbackResponse declareEmployeeFeedbackResponse = JsonUtil.parseObject(res, DeclareEmployeeFeedbackResponse.class);
if (Objects.isNull(declareEmployeeFeedbackResponse) || Objects.isNull(declareEmployeeFeedbackResponse.getHead())) {
log.error("服务异常:" + res);

View File

@ -112,16 +112,16 @@ public class PushServiceImpl extends Service implements PushService {
Map<Long, SalarySobPO> sobPOMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getId);
List<PushSettingDTO> list = pushSettingPOS.stream()
.filter(po -> StrUtil.isBlank(param.getName()) || po.getName().contains(param.getName())).map(
po -> PushSettingDTO.builder()
.id(po.getId())
.name(po.getName())
.tableName(po.getTableName())
.modeName(po.getModeName())
.modeId(po.getModeId())
.able(po.getAble())
.salarySobs(po.getSalarySobIds().stream().map(sobPOMap::get).collect(Collectors.toList()))
.build()).collect(Collectors.toList());
.filter(po -> StrUtil.isBlank(param.getName()) || po.getName().contains(param.getName()))
.map(po -> PushSettingDTO.builder()
.id(po.getId())
.name(po.getName())
.tableName(po.getTableName())
.modeName(po.getModeName())
.modeId(po.getModeId())
.able(po.getAble())
.salarySobs(po.getSalarySobIds().stream().map(sobPOMap::get).collect(Collectors.toList()))
.build()).collect(Collectors.toList());
return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, PushSettingDTO.class);
}
@ -526,8 +526,9 @@ public class PushServiceImpl extends Service implements PushService {
@Override
public PageInfo<PushRecordDTO> recordList(RecordListQueryParam param) {
List<PushRecordPO> pushRecordPOS = getPushRecordMapper().listAll();
List<PushRecordDTO> listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordPOS)
List<PushRecordDTO> listDTOS = pushRecordPOS
.stream()
.filter(po -> StrUtil.isBlank(param.getName()) || po.getName().contains(param.getName()))
.map(po -> PushRecordDTO.builder()
.id(po.getId())
.name(po.getName())
@ -544,7 +545,6 @@ public class PushServiceImpl extends Service implements PushService {
.collect(Collectors.toList());
PageInfo<PushRecordDTO> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDTO.class);
pageInfo.setTotal(pushRecordPOS.size());
return pageInfo;
}

View File

@ -172,7 +172,8 @@ public class SIAComparisonResultServiceImpl extends Service implements SIACompar
List<InsuranceArchivesBaseInfoPO> baseInfoPOList = getInsuranceBaseInfoMapper().listAll();
List<Long> canAccountIds = baseInfoPOList.stream()
.filter(f->f.getPaymentOrganization().toString().equals(queryParam.getPaymentOrganization())
&& (f.getRunStatus().equals(EmployeeStatusEnum.PAYING.getValue()) || f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())))
&& !f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue())
)
.map(InsuranceArchivesBaseInfoPO::getEmployeeId)
.collect(Collectors.toList());
accountExportPOS = accountExportPOS.stream().filter(v -> canAccountIds.contains(v.getEmployeeId())).collect(Collectors.toList());

View File

@ -4027,7 +4027,12 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService
if (org.apache.commons.collections.CollectionUtils.isEmpty(employeeIds)) {
return Collections.emptyList();
}
return getInsuranceBaseInfoMapper().listEndDateIsNull(employeeIds);
List<InsuranceArchivesBaseInfoPO> resultList = new ArrayList<>();
List<List<Long>> partition = Lists.partition(employeeIds, 500);
partition.forEach(part -> {
resultList.addAll(getInsuranceBaseInfoMapper().listEndDateIsNull(part));
});
return resultList;
}
/**

View File

@ -496,6 +496,12 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
*/
@Override
public void checkBeforeSave(SalaryAcctRecordPO salaryAcctRecord, List<SalaryAcctTaxAgentPO> salaryAcctTaxAgents) {
// 如果个税申报功能是关闭的则不需要检查
TaxDeclarationFunctionEnum taxDeclarationFunctionEnum = getSalarySysConfService(user).getTaxDeclaration();
if (taxDeclarationFunctionEnum == TaxDeclarationFunctionEnum.CLOSURE) {
return;
}
// 查询薪资账套
SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecord.getSalarySobId());
IncomeCategoryEnum incomeCategoryEnums = IncomeCategoryEnum.parseByValue(salarySobPO.getIncomeCategory());

View File

@ -497,6 +497,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
if (salarySendInfo == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "工资单信息不存在"));
}
if (!Objects.equals(salarySendInfo.getSendStatus(), 1)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "工资单信息不存在"));
}
Long employeeId = salarySendInfo.getEmployeeId();
if (currentEmployeeId.compareTo(employeeId) != 0) {
@ -1386,7 +1391,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
}
@Override
public Map<String, Object> withdraw(SalarySendWithdrawParam param) {
if (param.getSalarySendId() == null) {

View File

@ -932,17 +932,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
// 不是查询薪资账套下实时的薪资项目而是查询发起薪资核算时存储的薪资项目快照
SalaryAcctConfig salaryAcctSobConfig = getSalaryAcctSobConfigService(user).getSalaryAcctConfig(salaryAcctRecordId);
// 1.1如果薪资核算记录已经归档了就不能继续核算
if (!Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99148, "当前薪资核算记录已归档,请重新打开后再进行核算"));
}
// 2查询薪资核算记录的薪资周期考勤周期等
SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordId);
// 3查询薪资核算记录所用薪资账套的薪资项目副本
List<SalarySobItemPO> salarySobItemPOS = salaryAcctSobConfig.getSalarySobItems();
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99151, "当前所用的薪资账套未选择任何薪资项目,无法核算"));
}
// 回算薪资项目
List<SalarySobBackItemPO> salarySobBackItems = Collections.emptyList();
if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), 1)) {

View File

@ -687,29 +687,15 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService {
return taxAgentManageRangeEmployeeList;
}
List<Long> taxAgentIds = allTaxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList());
if (employeeStatus != null) {
List<String> personnelStatusList;
// 查询人员状态
// if (employeeStatus.equals(SalaryEmployeeStatusEnum.NORMAL)) {
// allEmployees = allEmployees.stream().filter(f -> UserStatusEnum.getNormalStatus().contains(f.getStatus())).collect(Collectors.toList());
// } else if (employeeStatus.equals(SalaryEmployeeStatusEnum.UNAVAILABLE)) {
// allEmployees = allEmployees.stream().filter(f -> UserStatusEnum.getUnavailableStatus().contains(f.getStatus())).collect(Collectors.toList());
// }
}
TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
param.setFilterType(AuthFilterTypeEnum.QUERY_DATA);
List<TaxAgentPO> taxAgentList = listAuth(param);
List<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList());
// 是否开启分权
if (!isOpenDevolution() || isChief(employeeId)) {
return getTaxAgentEmp(allTaxAgents, taxAgentIds);
}
// 1.判断自己是否是管理员 如果是管理员就是能够操作所属个税扣缴义务人下的所有人的数据
List<TaxAgentAdminPO> taxAgentAdminList = getTaxAgentAdminService(user).listByTaxAgentIdsAndEmployeeId(taxAgentIds, (long) user.getUID());
// 是管理员的列表
List<Long> adminTaxAgentIds = taxAgentAdminList.stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(adminTaxAgentIds)) {
taxAgentManageRangeEmployeeList.addAll(getTaxAgentEmp(allTaxAgents, adminTaxAgentIds));
if (CollectionUtils.isNotEmpty(taxAgentIds)) {
List<TaxAgentManageRangeEmployeeDTO> taxAgentEmp = getTaxAgentEmp(allTaxAgents, taxAgentIds);
taxAgentManageRangeEmployeeList.addAll(taxAgentEmp);
}
return taxAgentManageRangeEmployeeList;

View File

@ -1,5 +1,6 @@
package com.engine.salary.service.impl;
import cn.hutool.core.util.StrUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
@ -157,20 +158,24 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
public PageInfo<TaxDeclarationPO> listPageByParam(TaxDeclarationListQueryParam queryParam) {
// 分页参数
TaxDeclarationPO po = TaxDeclarationPO.builder().build();
LocalDateRange localDateRange = new LocalDateRange();
if (Objects.nonNull(queryParam.getFromSalaryMonth())) {
localDateRange.setFromDate(queryParam.getFromSalaryMonth());
po.setTaxCycleFromDate(queryParam.getFromSalaryMonth());
}
if (Objects.nonNull(queryParam.getEndSalaryMonth())) {
localDateRange.setEndDate(SalaryDateUtil.localDateToDate(SalaryDateUtil.localDate2YearMonth(queryParam.getEndSalaryMonth()).atEndOfMonth()));
po.setTaxCycleEndDate(queryParam.getEndSalaryMonth());
}
po.setSalaryMonths(localDateRange);
// 查询个税申报表
List<TaxDeclarationPO> taxDeclarationPOS = getTaxDeclarationMapper().listSome(po);
taxDeclarationPOS = getAuthService(user).auth(taxDeclarationPOS, AuthFilterTypeEnum.DATA_OPT, TaxDeclarationPO.class);
if (StrUtil.isNotBlank(queryParam.getTaxAgentName())) {
List<TaxAgentPO> taxAgentPOs = getTaxAgentService(user).list(TaxAgentQueryParam.builder().name(queryParam.getTaxAgentName()).build());
Set<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgentPOs, TaxAgentPO::getId);
taxDeclarationPOS = taxDeclarationPOS.stream().filter(tax -> taxAgentIds.contains(tax.getTaxAgentId())).collect(Collectors.toList());
}
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
taxDeclarationPOS, TaxDeclarationPO.class);

View File

@ -25,6 +25,7 @@ import com.engine.salary.entity.taxdeclaration.po.*;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.enums.salarysob.DeclareReportTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
import com.engine.salary.enums.taxdeclaration.SourceEnum;
@ -365,7 +366,12 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
Map<String, List<List<Object>>> onlineDataMap = new HashMap<>();
List<TaxDeclarationPO> list = getTaxDeclarationService(user).listByTaxDeclareRecordId(taxDeclareRecordPO.getId());
list.stream().map(TaxDeclarationPO::getIncomeCategory).map(IncomeCategoryEnum::parseByValue).forEach(e -> e.parseGetDeclareTaxResultFeedbackResponse(onlineDataMap, declareTaxResultFeedbackResponse));
list.stream()
.map(TaxDeclarationPO::getIncomeCategory)
.map(IncomeCategoryEnum::parseByValue)
.filter(Objects::nonNull)
.filter(e -> e.getReportType() == DeclareReportTypeEnum.parseByValue(reportType))
.forEach(e -> e.parseGetDeclareTaxResultFeedbackResponse(onlineDataMap, declareTaxResultFeedbackResponse));
Map<String, Object> resultList = new HashMap<>();
List<TaxDeclarationValuePO> taxDeclarationValues = listByTaxDeclarationId(taxDeclaration.getId());
@ -446,7 +452,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
onlyShowColumns.add(col);
hasDiff.set(true);
}
} else if ((StrUtil.isBlank(localValue) && "0.00".equals(onlineValue)) || (StrUtil.isBlank(onlineValue) && "0.00".equals(localValue))) {
} else if ((StrUtil.isBlank(localValue) && ("0.00".equals(onlineValue) || "0".equals(onlineValue))) || (StrUtil.isBlank(onlineValue) && ("0.00".equals(localValue) || "0".equals(localValue)))) {
//短路
} else {
if (!Objects.equals(localValue, onlineValue)) {
@ -504,7 +510,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
// 获取线下对比结果
Map<String, Object> contrastMap = contrast(param);
List<String> header = ((List<String>) contrastMap.get("columns"));
PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>)contrastMap.get("pageInfo");
PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>) contrastMap.get("pageInfo");
List<Map<String, Object>> list = pageInfo.getList();
List<WeaTableColumn> empInfoColumns = new ArrayList<>();

View File

@ -1,5 +1,7 @@
package com.engine.salary.service.impl;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
@ -23,6 +25,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobAddUpRulePO;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.entity.salarysob.po.SalarySobTaxReportRulePO;
import com.engine.salary.entity.taxagent.bo.TaxAgentTaxReturnBO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO;
import com.engine.salary.entity.taxapiflow.bo.TaxApiFlowBO;
@ -250,6 +253,13 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
}
List<TaxDeclareRecordPO> taxDeclareRecordPOS = getTaxDeclareRecordMapper().listSome(build);
if (StrUtil.isNotBlank(queryParam.getTaxAgentName())) {
List<TaxAgentPO> taxAgentPOs = getTaxAgentService(user).list(TaxAgentQueryParam.builder().name(queryParam.getTaxAgentName()).build());
Set<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgentPOs, TaxAgentPO::getId);
taxDeclareRecordPOS = taxDeclareRecordPOS.stream().filter(tax -> taxAgentIds.contains(tax.getTaxAgentId())).collect(Collectors.toList());
}
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxDeclareRecordPOS, TaxDeclareRecordPO.class);
}
@ -707,6 +717,12 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
requestParam.put("zhsd", taxDeclarationParam);
}
if (declareReportType == DeclareReportTypeEnum.CLASSIFIED_INCOME) {
//分类所得
Map<String, Object> flsdRequestParam = TaxDeclarationRequest.convert2flsdRequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares);
requestParam.put("flsd", flsdRequestParam);
}
if (declareReportType == DeclareReportTypeEnum.NONRESIDENT_INCOME) {
//非居民所得代扣代缴 fjmsd
Map<String, Object> fjmsdRequestParam = TaxDeclarationRequest.convert2fjmsdRequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares);
@ -718,7 +734,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
Map<String, String> params = new HashMap<>(1);
Map<String, String> header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE);
log.info("个税申报返回数据: {} , taxDeclareRecord: {}", res, taxDeclareRecord);
log.info("个税申报数据:params {} ,res {}, taxDeclareRecord: {}",reqJson, res, taxDeclareRecord);
DeclareTaxResponse declareTaxResponse = JsonUtil.parseObject(res, DeclareTaxResponse.class);
if (Objects.isNull(declareTaxResponse) || Objects.isNull(declareTaxResponse.getHead())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156449, "服务异常"));
@ -908,7 +924,8 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
declareStatus.setTaxDeclareStatus(taxDeclareStatusEnum.getValue());
// 申报类型
declareStatus.setTaxPayAmount(Util.null2String(declareTaxFeedbackResponse.getBody().get("ykjse")));
declareStatus.setPersonNum(Integer.parseInt(Optional.ofNullable(declareTaxFeedbackResponse.getBody().get("nsrc")).orElse("0").toString()));
String nsrc = Util.null2String(declareTaxFeedbackResponse.getBody().get("nsrc"));
declareStatus.setPersonNum(Integer.parseInt(NumberUtil.isNumber(nsrc) ? nsrc : "0"));
declareStatus.setDeclareRequestId(declareStatus.getRequestId());
declareStatus.setRequestId("");
//实缴不含滞纳金

View File

@ -1,5 +1,6 @@
package com.engine.salary.util.excel;
import cn.hutool.core.util.StrUtil;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryDateUtil;
@ -139,8 +140,10 @@ public class ExcelUtil {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
@ -235,8 +238,10 @@ public class ExcelUtil {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
@ -311,8 +316,10 @@ public class ExcelUtil {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
@ -377,8 +384,10 @@ public class ExcelUtil {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));
@ -458,8 +467,10 @@ public class ExcelUtil {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));

View File

@ -1,6 +1,7 @@
package com.engine.salary.util.excel;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import cn.hutool.core.util.StrUtil;
import com.engine.salary.component.WeaTableColumnGroup;
import com.engine.salary.entity.taxdeclaration.dto.ContrastListDTO;
import com.engine.salary.util.SalaryDateUtil;
@ -9,6 +10,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import weaver.wechat.util.Utils;
import java.awt.Color;
import java.math.BigDecimal;
@ -136,10 +138,10 @@ public class ExcelUtilPlus {
for (int i = 0; i < header.size(); i++) {
WeaTableColumnGroup columnGroupItem = (WeaTableColumnGroup) header.get(i);
XSSFCell rowZeroCell = row0.createCell(i, CellType.STRING);
rowZeroCell.setCellValue(columnGroupItem.getText().toString());
rowZeroCell.setCellValue(columnGroupItem.getText());
rowZeroCell.setCellStyle(titleCellStyle);
//设置列宽
sheet.setColumnWidth(i, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256);
sheet.setColumnWidth(i, Math.min(255, Math.max(12, Utils.null2String(columnGroupItem.getText()).length() * 4)) * 256);
patternList.add(columnGroupItem.getPattern());
}
@ -195,8 +197,10 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
if (lastRowRed && rowIndex == rowList.size() - 1) {
cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex)));
@ -204,7 +208,7 @@ public class ExcelUtilPlus {
cell.setCellStyle(numberCellStyleMap.get(patternList.get(cellIndex)));
}
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
cell.setCellValue(((BigDecimal) o).doubleValue());
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));
@ -224,6 +228,7 @@ public class ExcelUtilPlus {
}
return workbook;
}
public static XSSFWorkbook genWorkbookV2(List<List<Object>> rowList, String sheetName) {
XSSFWorkbook workbook = new XSSFWorkbook();
@ -284,11 +289,13 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
cell.setCellValue(((BigDecimal) o).doubleValue());
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));
@ -371,8 +378,10 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));
@ -480,11 +489,13 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());
cell.setCellValue(((BigDecimal) o).doubleValue());
} else if (o instanceof Boolean) {
cell.setCellType(CellType.BOOLEAN);
cell.setCellValue(String.valueOf(o));
@ -678,8 +689,10 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
if (lastRowRed && rowIndex == rowList.size() - 1) {
cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex)));
@ -843,8 +856,10 @@ public class ExcelUtilPlus {
}
Object o = infoList.get(cellIndex);
if (o instanceof String) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
if (StrUtil.isNotBlank(String.valueOf(o))) {
cell.setCellType(CellType.STRING);
cell.setCellValue(String.valueOf(o));
}
} else if (o instanceof BigDecimal) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());

View File

@ -250,7 +250,9 @@ public class ValidUtil {
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION");
.replace("", "UNION")
.replace("", "substr")
.replace("", "SUBSTR");
}
setValue(t, field.getName(), result);
} else if (valueTypeEnum == ValueTypeEnum.OBJECT) {

View File

@ -72,7 +72,7 @@ public class TaxDeclarationController {
@POST
@Path("/list")
@Produces(MediaType.APPLICATION_JSON)
public String listTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationListQueryParam queryParam) {
public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationListQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<TaxDeclarationListQueryParam, PageInfo>(user).run(getTaxDeclareRecordWrapper(user)::listPage, queryParam);
}

View File

@ -97,7 +97,10 @@ public class SalarySobRangeWrapper extends Service {
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
.replace("", "UNION")
.replace("", "substr")
.replace("", "SUBSTR")
);
}
});
@ -127,7 +130,10 @@ public class SalarySobRangeWrapper extends Service {
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
.replace("", "UNION")
.replace("", "substr")
.replace("", "SUBSTR")
);
}
});

View File

@ -300,7 +300,8 @@ public class SalarySobWrapper extends Service {
public List<Map<String, Object>> incomeCategoryList() {
List<Map<String, Object>> list = new ArrayList<>();
Arrays.stream(IncomeCategoryEnum.values())
.filter(incomeCategory -> incomeCategory.getReportType() == DeclareReportTypeEnum.COMPREHENSIVE_INCOME)
.filter(incomeCategory -> incomeCategory.getReportType() == DeclareReportTypeEnum.COMPREHENSIVE_INCOME
|| incomeCategory.getReportType() == DeclareReportTypeEnum.CLASSIFIED_INCOME)
.forEach(incomeCategory -> {
Map<String, Object> map = new HashMap<String, Object>();
map.put("enum", incomeCategory);

View File

@ -352,7 +352,10 @@ public class TaxAgentWrapper extends Service {
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
.replace("", "UNION")
.replace("", "substr")
.replace("", "SUBSTR")
);
}
});
@ -386,7 +389,10 @@ public class TaxAgentWrapper extends Service {
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
.replace("", "UNION")
.replace("", "substr")
.replace("", "SUBSTR")
);
}
});