Merge branch 'release/个税&业务线' into custom/钱智
This commit is contained in:
commit
490e6ab0fe
|
|
@ -1,5 +1,5 @@
|
|||
log=false
|
||||
defaultCloseNonStandard149=true
|
||||
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
|
||||
version=3.0.2.2504.01
|
||||
version=3.0.2.2504.03
|
||||
openFormulaForcedEditing=false
|
||||
|
|
@ -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);
|
||||
/
|
||||
|
||||
|
|
@ -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);
|
||||
/
|
||||
|
||||
|
|
@ -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);
|
||||
/
|
||||
|
||||
|
|
@ -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);
|
||||
|
|
@ -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)
|
||||
/
|
||||
|
|
@ -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)
|
||||
/
|
||||
|
|
@ -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)
|
||||
/
|
||||
|
|
@ -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);
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
/
|
||||
|
||||
|
|
@ -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());
|
||||
// *手机号码
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import lombok.Builder;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -110,6 +110,13 @@ public class TaxDeclarationPO {
|
|||
LocalDateRange taxMonths;
|
||||
|
||||
|
||||
//"开始日期
|
||||
private Date taxCycleFromDate;
|
||||
|
||||
//结束日期
|
||||
private Date taxCycleEndDate;
|
||||
|
||||
|
||||
|
||||
private Collection<Long> taxAgentIds;
|
||||
private Set<String> opts;
|
||||
|
|
|
|||
|
|
@ -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<>())
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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=")">
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,9 @@ public class SalaryStatisticsDataPerspectiveQueryParam extends BaseQueryParam {
|
|||
//个税扣缴义务人配置
|
||||
private List<Long> taxAgent;
|
||||
|
||||
@JsonIgnore
|
||||
private List<Long> salarySob;
|
||||
|
||||
@JsonIgnore
|
||||
//收入所得项目配置
|
||||
private List<Integer> incomeCategory;
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()];
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<>();
|
||||
|
|
|
|||
|
|
@ -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("");
|
||||
//实缴(不含滞纳金)
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -250,7 +250,9 @@ public class ValidUtil {
|
|||
.replace("between", "between")
|
||||
.replace("BETWEEN", "BETWEEN")
|
||||
.replace("union", "union")
|
||||
.replace("UNION", "UNION");
|
||||
.replace("UNION", "UNION")
|
||||
.replace("substr", "substr")
|
||||
.replace("SUBSTR", "SUBSTR");
|
||||
}
|
||||
setValue(t, field.getName(), result);
|
||||
} else if (valueTypeEnum == ValueTypeEnum.OBJECT) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,10 @@ public class SalarySobRangeWrapper extends Service {
|
|||
.replace("between", "between")
|
||||
.replace("BETWEEN", "BETWEEN")
|
||||
.replace("union", "union")
|
||||
.replace("UNION", "UNION"));
|
||||
.replace("UNION", "UNION")
|
||||
.replace("substr", "substr")
|
||||
.replace("SUBSTR", "SUBSTR")
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -127,7 +130,10 @@ public class SalarySobRangeWrapper extends Service {
|
|||
.replace("between", "between")
|
||||
.replace("BETWEEN", "BETWEEN")
|
||||
.replace("union", "union")
|
||||
.replace("UNION", "UNION"));
|
||||
.replace("UNION", "UNION")
|
||||
.replace("substr", "substr")
|
||||
.replace("SUBSTR", "SUBSTR")
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -352,7 +352,10 @@ public class TaxAgentWrapper extends Service {
|
|||
.replace("between", "between")
|
||||
.replace("BETWEEN", "BETWEEN")
|
||||
.replace("union", "union")
|
||||
.replace("UNION", "UNION"));
|
||||
.replace("UNION", "UNION")
|
||||
.replace("substr", "substr")
|
||||
.replace("SUBSTR", "SUBSTR")
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -386,7 +389,10 @@ public class TaxAgentWrapper extends Service {
|
|||
.replace("between", "between")
|
||||
.replace("BETWEEN", "BETWEEN")
|
||||
.replace("union", "union")
|
||||
.replace("UNION", "UNION"));
|
||||
.replace("UNION", "UNION")
|
||||
.replace("substr", "substr")
|
||||
.replace("SUBSTR", "SUBSTR")
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue