This commit is contained in:
parent
ce0b8ce186
commit
09b2bf54e1
|
|
@ -1,53 +0,0 @@
|
|||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (700599184238075904, '社保个人合计', 'socialSecurityTotal', 1, 7, 1, 1, 0, 2, 2, 2, 7, 1659339100298, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:56', '2022-08-01 17:01:24', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (700599446244319233, '公积金个人合计', 'accumulationFundTotal', 1, 7, 1, 1, 0, 2, 2, 2, 7, 1659339063868, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:56', '2022-08-01 17:01:26', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (703458434280095745, '劳务收入', 'laborIncome', 1, 7, 4, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-06-17 09:01:56', '2022-08-01 16:55:45', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (703458558739300353, '劳务免税收入', 'laborTaxFreeIncome', 1, 7, 4, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-06-17 09:01:57', '2022-08-01 16:55:54', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (703459151591383041, '备注', 'description', 1, 7, 1, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-06-17 09:01:57', '2022-06-17 09:01:57', 'string');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (703459464954929153, '所得项目', 'incomeItems', 1, 7, 1, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-06-17 09:01:57', '2022-06-17 09:01:57', 'string');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (704467747234045953, '劳务税减除费用', 'laborSubtraction', 1, 7, 4, 1, 0, 2, 2, 2, 1, 1659340673739, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:57', '2022-08-01 17:03:47', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (704468391612751873, '劳务税应纳税所得额', 'laborTaxableIncome', 1, 7, 4, 1, 0, 2, 2, 2, 1, 1659340916981, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:58', '2022-08-01 17:03:51', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (704468443048992769, '劳务税税率', 'laborTaxRate', 1, 7, 4, 1, 0, 2, 2, 2, 1, 1659341397524, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:58', '2022-08-01 17:03:53', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (704468490269204481, '劳务税速算扣除数', 'laborQuickDeductionFactor', 1, 7, 4, 1, 0, 2, 2, 2, 1, 1659341564390, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:58', '2022-08-01 17:03:54', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (704468528928063488, '劳务税应纳税额', 'laborTaxPayable', 1, 7, 4, 1, 0, 2, 2, 2, 1, 1659341811881, '', 0, 1, 0, 0, 'all_teams', '2022-06-17 09:01:59', '2022-08-01 17:03:55', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (733975748932845568, '个税调差', 'taxAdjustment', 1, 7, 1, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-06-17 09:01:59', '2022-06-17 09:01:59', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629570, '商业健康保险[劳务]', 'commercialHealthInsurance4', 1, 7, 4, 0, 0, 2, 2, 2, 8, 1659341909423, '', 0, 1, 0, 0, 'all_teams', '2022-07-21 14:00:00', '2022-08-01 17:00:38', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629571, '税延养老保险[劳务]', 'taxDeferredEndowmentInsurance4', 1, 7, 4, 0, 0, 2, 2, 2, 8, 1659341966905, '', 0, 1, 0, 0, 'all_teams', '2022-07-21 14:00:00', '2022-08-01 17:00:40', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629572, '其他[劳务]', 'other4', 1, 7, 4, 0, 0, 2, 2, 2, 8, 1659341993723, '', 0, 1, 0, 0, 'all_teams', '2022-07-21 14:00:00', '2022-08-01 17:00:41', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629573, '本月(次)准予扣除的捐赠额[劳务]', 'allowedDonation4', 1, 7, 4, 0, 0, 2, 2, 2, 8, 1659342041963, '', 0, 1, 0, 0, 'all_teams', '2022-07-21 14:00:00', '2022-08-01 17:00:42', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629574, '备注[劳务]', 'description4', 1, 7, 4, 1, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-07-21 14:00:00', '2022-08-01 16:56:25', 'string');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629575, '已发薪资合计', 'issuedTotal', 1, 7, 1, 0, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-07-28 17:26:52', '2022-08-01 16:59:28', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629576, '补发薪资合计', 'ressueTotal', 1, 7, 1, 0, 0, 2, 2, 1, 0, 0, '', 1, 1, 0, 0, 'all_teams', '2022-07-28 17:26:52', '2022-08-01 16:59:40', 'number');
|
||||
|
||||
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659339063868, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{社保福利.公积金个人合计}', 'welfare_fundPerSum', 92, 0, '2022-08-01 15:31:04', '2022-08-01 15:31:04');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659339100298, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{社保福利.社保个人合计}', 'welfare_socialPerSum', 92, 0, '2022-08-01 15:31:40', '2022-08-01 15:31:40');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659340673739, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', 'if({薪资项目.劳务收入}-{薪资项目.劳务免税收入}<=4000){800;}else{0.2*({薪资项目.劳务收入}-{薪资项目.劳务免税收入})}', 'if(salaryItem_laborIncome-salaryItem_laborTaxFreeIncome<=4000){800;}else{0.2*(salaryItem_laborIncome-salaryItem_laborTaxFreeIncome)}', 92, 0, '2022-08-01 15:57:54', '2022-08-01 15:57:54');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659340916981, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{薪资项目.劳务收入}-{薪资项目.劳务免税收入}-{薪资项目.劳务税减除费用}', 'salaryItem_laborIncome-salaryItem_laborTaxFreeIncome-salaryItem_laborSubtraction', 92, 0, '2022-08-01 16:01:57', '2022-08-01 16:01:57');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341397524, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', 'if({薪资项目.劳务税应纳税所得额}<=20000){0.2;}else if({薪资项目.劳务税应纳税所得额}<=50000){0.3;}else{0.4;}', 'if(salaryItem_laborTaxableIncome<=20000){0.2;}else if(salaryItem_laborTaxableIncome<=50000){0.3;}else{0.4;}', 92, 0, '2022-08-01 16:09:57', '2022-08-01 16:09:57');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341564390, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', 'if({薪资项目.劳务税应纳税所得额}<=20000){0;}else if({薪资项目.劳务税应纳税所得额}<=50000){2000;}else{7000;}', 'if(salaryItem_laborTaxableIncome<=20000){0;}else if(salaryItem_laborTaxableIncome<=50000){2000;}else{7000;}', 92, 0, '2022-08-01 16:12:44', '2022-08-01 16:12:44');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341811881, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', 'if({薪资项目.劳务税应纳税所得额}<=0){0;}else{{薪资项目.劳务税应纳税所得额}*{薪资项目.劳务税税率}-{薪资项目.劳务税速算扣除数}}', 'if(salaryItem_laborTaxableIncome<=0){0;}else{salaryItem_laborTaxableIncome*salaryItem_laborTaxRate-salaryItem_laborQuickDeductionFactor}', 92, 0, '2022-08-01 16:16:52', '2022-08-01 16:16:52');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341909423, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{其他免税扣除.商业健康保险}', 'otherDeduction_businessHealthyInsurance', 92, 0, '2022-08-01 16:18:29', '2022-08-01 16:18:29');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341966905, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{其他免税扣除.税延养老保险}', 'otherDeduction_taxDelayEndowmentInsurance', 92, 0, '2022-08-01 16:19:27', '2022-08-01 16:19:27');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659341993723, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{其他免税扣除.其他}', 'otherDeduction_otherDeduction', 92, 0, '2022-08-01 16:19:54', '2022-08-01 16:19:54');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1659342041963, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{其他免税扣除.准予扣除的捐赠额}', 'otherDeduction_deductionAllowedDonation', 92, 0, '2022-08-01 16:20:42', '2022-08-01 16:20:42');
|
||||
|
||||
|
||||
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659339063886, '公积金个人合计', 1659339063868, 'welfare_fundPerSum', '{社保福利.公积金个人合计}', 'number', 'welfare', 1, 92, 0, '2022-08-01 15:31:04', '2022-08-01 15:31:04');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659339100354, '社保个人合计', 1659339100298, 'welfare_socialPerSum', '{社保福利.社保个人合计}', 'number', 'welfare', 2, 92, 0, '2022-08-01 15:31:40', '2022-08-01 15:31:40');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659340673751, '劳务收入', 1659340673739, 'salaryItem_laborIncome', '{薪资项目.劳务收入}', 'number', 'salaryItem', 0, 92, 0, '2022-08-01 15:57:54', '2022-08-01 15:57:54');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659340673754, '劳务免税收入', 1659340673739, 'salaryItem_laborTaxFreeIncome', '{薪资项目.劳务免税收入}', 'number', 'salaryItem', 1, 92, 0, '2022-08-01 15:57:54', '2022-08-01 15:57:54');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659340917032, '劳务收入', 1659340916981, 'salaryItem_laborIncome', '{薪资项目.劳务收入}', 'number', 'salaryItem', 0, 92, 0, '2022-08-01 16:01:57', '2022-08-01 16:01:57');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659340917035, '劳务免税收入', 1659340916981, 'salaryItem_laborTaxFreeIncome', '{薪资项目.劳务免税收入}', 'number', 'salaryItem', 1, 92, 0, '2022-08-01 16:01:57', '2022-08-01 16:01:57');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659340917039, '劳务税减除费用', 1659340916981, 'salaryItem_laborSubtraction', '{薪资项目.劳务税减除费用}', 'number', 'salaryItem', 2, 92, 0, '2022-08-01 16:01:57', '2022-08-01 16:01:57');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341397539, '劳务税应纳税所得额', 1659341397524, 'salaryItem_laborTaxableIncome', '{薪资项目.劳务税应纳税所得额}', 'number', 'salaryItem', 0, 92, 0, '2022-08-01 16:09:57', '2022-08-01 16:09:57');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341564447, '劳务税应纳税所得额', 1659341564390, 'salaryItem_laborTaxableIncome', '{薪资项目.劳务税应纳税所得额}', 'number', 'salaryItem', 0, 92, 0, '2022-08-01 16:12:44', '2022-08-01 16:12:44');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341811897, '劳务税应纳税所得额', 1659341811881, 'salaryItem_laborTaxableIncome', '{薪资项目.劳务税应纳税所得额}', 'number', 'salaryItem', 0, 92, 0, '2022-08-01 16:16:52', '2022-08-01 16:16:52');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341811901, '劳务税税率', 1659341811881, 'salaryItem_laborTaxRate', '{薪资项目.劳务税税率}', 'number', 'salaryItem', 3, 92, 0, '2022-08-01 16:16:52', '2022-08-01 16:16:52');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341811904, '劳务税速算扣除数', 1659341811881, 'salaryItem_laborQuickDeductionFactor', '{薪资项目.劳务税速算扣除数}', 'number', 'salaryItem', 4, 92, 0, '2022-08-01 16:16:52', '2022-08-01 16:16:52');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341909473, '商业健康保险', 1659341909423, 'otherDeduction_businessHealthyInsurance', '{其他免税扣除.商业健康保险}', 'number', 'otherDeduction', 0, 92, 0, '2022-08-01 16:18:29', '2022-08-01 16:18:29');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341966920, '税延养老保险', 1659341966905, 'otherDeduction_taxDelayEndowmentInsurance', '{其他免税扣除.税延养老保险}', 'number', 'otherDeduction', 0, 92, 0, '2022-08-01 16:19:27', '2022-08-01 16:19:27');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659341993736, '其他', 1659341993723, 'otherDeduction_otherDeduction', '{其他免税扣除.其他}', 'number', 'otherDeduction', 0, 92, 0, '2022-08-01 16:19:54', '2022-08-01 16:19:54');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1659342041967, '准予扣除的捐赠额', 1659342041963, 'otherDeduction_deductionAllowedDonation', '{其他免税扣除.准予扣除的捐赠额}', 'number', 'otherDeduction', 0, 92, 0, '2022-08-01 16:20:42', '2022-08-01 16:20:42');
|
||||
|
||||
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (705641858303836162, '累计婴幼儿照护', 'addUpInfantCare', 1, 7, 1, 1, 0, 2, 2, 2, 0, 1655196897860, '', 0, 1, 0, 0, 'all_teams', '2022-05-31 17:36:04', '2022-05-31 17:36:04', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (703419929857687552, '当前累计免税收入', 'addUpTaxFreeIncome', 1, 7, 1, 1, 0, 2, 2, 2, 0, 1655197296054, '', 0, 1, 0, 0, 'all_teams', '2022-03-11 13:50:17', '2022-03-17 16:13:27', 'number');
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (705641858303836161, '累计大病医疗', 'addUpIllnessMedical', 1, 7, 1, 1, 0, 2, 2, 2, 0, 1655197430967, '', 0, 1, 0, 0, 'all_teams', '2022-03-17 13:30:57', '2022-03-18 17:06:46', 'number');
|
||||
|
||||
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1655196897860, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{累计专项附加扣除.累计婴幼儿照护}', 'addUpDeductions_addUpInfantCare', 92, 0, '2022-06-14 16:54:58', '2022-06-14 16:54:58');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1655197296054, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{薪资项目.本月(次)免税收入}+{往期累计情况.累计免税收入}', 'salaryItem_taxFreeIncome+addUpSituation_addUpTaxExemptIncome', 92, 0, '2022-06-14 17:01:36', '2022-06-14 17:01:36');
|
||||
INSERT INTO hrsa_formula(id, name, description, module, use_for, reference_type, return_type, validate_type, extend_param, formula, formulaRunScript, creator, delete_type, create_time, update_time) VALUES (1655197430967, '公式1', '备注', 'salary', 'salaryitem', 'formula', 'number', 'number', '{}', '{累计专项附加扣除.累计大病医疗}', 'addUpDeductions_addUpIllnessMedical', 92, 0, '2022-06-14 17:03:51', '2022-06-14 17:03:51');
|
||||
|
||||
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1655196897869, '累计婴幼儿照护', 1655196897860, 'addUpDeductions_addUpInfantCare', '{累计专项附加扣除.累计婴幼儿照护}', 'number', 'addUpDeductions', 0, 92, 0, '2022-06-14 16:54:58', '2022-06-14 16:54:58');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1655197296059, '本月(次)免税收入', 1655197296054, 'salaryItem_taxFreeIncome', '{薪资项目.本月(次)免税收入}', 'number', 'salaryItem', 0, 92, 0, '2022-06-14 17:01:36', '2022-06-14 17:01:36');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1655197296063, '累计免税收入', 1655197296054, 'addUpSituation_addUpTaxExemptIncome', '{往期累计情况.累计免税收入}', 'number', 'addUpSituation', 1, 92, 0, '2022-06-14 17:01:36', '2022-06-14 17:01:36');
|
||||
INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1655197430986, '累计大病医疗', 1655197430967, 'addUpDeductions_addUpIllnessMedical', '{累计专项附加扣除.累计大病医疗}', 'number', 'addUpDeductions', 0, 92, 0, '2022-06-14 17:03:51', '2022-06-14 17:03:51');
|
||||
|
||||
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (728615865977528321, 1, 705641858303836162, 1, 0, 0, '2022-05-31 17:36:04', '2022-05-31 17:36:04', 0, 'all_teams', 703433961629614103, 7);
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (733975748932845569, 1, 674853617092214787, 1, 1, 0, '2022-06-14 14:52:53', '2022-06-14 14:52:53', 0, 'all_teams', 703433961629614083, 8);
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (733975748932845572, 1, 674853617092214788, 1, 1, 0, '2022-06-14 14:52:53', '2022-06-14 14:52:53', 0, 'all_teams', 703433961629614083, 9);
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (733975748932845578, 1, 674853617092214789, 1, 1, 0, '2022-06-14 14:52:53', '2022-06-14 14:52:53', 0, 'all_teams', 703433961629614083, 10);
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (733975748932845567, 1, 733975748932845568, 1, 1, 0, '2022-06-14 14:52:53', '2022-06-14 14:52:53', 0, 'all_teams', 703433961629614083, 11);
|
||||
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
ALTER TABLE hrsa_tax_declaration ADD COLUMN income_category int(255) NOT NULL COMMENT '薪资类型。1:正常工资薪金所得、4:劳务所得' ;
|
||||
|
||||
ALTER TABLE hrsa_tax_declaration_detail ADD COLUMN employee_type int(255) NOT NULL ;
|
||||
|
||||
ALTER TABLE hrsa_tax_declaration ADD income_category int NULL
|
||||
GO
|
||||
|
||||
ALTER TABLE hrsa_tax_declaration_detail ADD employee_type int NULL
|
||||
GO
|
||||
|
||||
ALTER TABLE hrsa_tax_declaration add (
|
||||
income_category number
|
||||
)
|
||||
/
|
||||
|
||||
ALTER TABLE hrsa_tax_declaration_detail add (
|
||||
employee_type number
|
||||
)
|
||||
/
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
|
||||
-- 累计子女教育
|
||||
UPDATE a set a.field_value = b.add_up_child_education
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpChildEducation';
|
||||
|
||||
-- 累计住房贷款利息
|
||||
UPDATE a set a.field_value = b.add_up_housing_loan_interest
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpHousingLoanInterest';
|
||||
|
||||
-- 累计住房租金
|
||||
UPDATE a set a.field_value = b.add_up_housing_rent
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpHousingRent';
|
||||
|
||||
|
||||
|
||||
-- 累计继续教育
|
||||
UPDATE a set a.field_value = b.add_up_continuing_education
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpContinuingEducation';
|
||||
|
||||
--累计赡养老人
|
||||
UPDATE a set a.field_value = b.add_up_support_elderly
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpSupportElderly';
|
||||
|
||||
|
||||
|
||||
--累计大病医疗
|
||||
UPDATE a set a.field_value = b.add_up_illness_medical
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpIllnessMedical';
|
||||
|
||||
--累计婴幼儿照护
|
||||
UPDATE a set a.field_value = b.add_up_infant_care
|
||||
FROM hrsa_tax_declaration_detail a,hrsa_add_up_deduction b
|
||||
where a.employee_id = b.employee_id
|
||||
and b.tax_agent_id = 4
|
||||
and a.tax_declaration_id = 1675151551804
|
||||
and a.delete_type = 0
|
||||
and b.delete_type =0
|
||||
and b.declare_month='2023-01-01 00:00:00'
|
||||
and a.field_code = 'addUpInfantCare';
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
delete from SystemRightDetail where rightid =2693
|
||||
;
|
||||
delete from SystemRightsLanguage where id =2693
|
||||
;
|
||||
delete from SystemRights where id =2693
|
||||
;
|
||||
delete from SystemRightToGroup where rightid =2693
|
||||
;
|
||||
delete from SystemRightType where id =36
|
||||
;
|
||||
delete from SystemRightGroups where id =-22
|
||||
;
|
||||
insert into SystemRights (id,rightdesc,righttype,detachable) values (2693,'薪酬管理权限','36',0)
|
||||
;
|
||||
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,8,'Salary management authority','Salary management authority')
|
||||
;
|
||||
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,9,'薪酬管理權限','薪酬管理權限')
|
||||
;
|
||||
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,7,'薪酬管理权限','薪酬管理权限')
|
||||
;
|
||||
|
||||
insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (43969,'薪酬总管理员','Salary:Chief',2693)
|
||||
;
|
||||
|
||||
insert into SystemRightToGroup(rightid,groupid) values (2693,-22)
|
||||
;
|
||||
insert into SystemRightGroups (id,rightgroupmark, rightgroupname, rightgroupremark) values(-22,'SALARY','薪酬管理权限组','薪酬管理')
|
||||
;
|
||||
insert into SystemRightType(id,rightTypeName,rightTypeDesc) VALUES (36,'薪酬管理','薪酬管理')
|
||||
;
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
ALTER TABLE hrsa_salary_item MODIFY COLUMN shared_type int(0) NULL ;
|
||||
ALTER TABLE hrsa_salary_sob_item MODIFY COLUMN tenant_key varchar(10) null ;
|
||||
|
||||
|
||||
ALTER TABLE hrsa_salary_item ALTER COLUMN [shared_type] int NULL
|
||||
GO
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_item ALTER COLUMN [tenant_key] varchar NULL
|
||||
GO
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
package com.engine.salary.mapper.report;
|
||||
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsItemPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface SalaryStatisticsItemMapper {
|
||||
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<SalaryStatisticsItemPO> listAll();
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<SalaryStatisticsItemPO> listSome(SalaryStatisticsItemPO SalaryStatisticsItemPO);
|
||||
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
SalaryStatisticsItemPO getById(Long id);
|
||||
|
||||
/**
|
||||
* 新增,忽略null字段
|
||||
*
|
||||
* @param SalaryStatisticsItemPO 新增的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int insertIgnoreNull(SalaryStatisticsItemPO SalaryStatisticsItemPO);
|
||||
|
||||
/**
|
||||
* 修改,修改所有字段
|
||||
*
|
||||
* @param SalaryStatisticsItemPO 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int update(SalaryStatisticsItemPO SalaryStatisticsItemPO);
|
||||
|
||||
/**
|
||||
* 修改,忽略null字段
|
||||
*
|
||||
* @param SalaryStatisticsItemPO 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int updateIgnoreNull(SalaryStatisticsItemPO SalaryStatisticsItemPO);
|
||||
|
||||
/**
|
||||
* 删除记录
|
||||
*
|
||||
* @param SalaryStatisticsItemPO 待删除的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int delete(SalaryStatisticsItemPO SalaryStatisticsItemPO);
|
||||
|
||||
/**
|
||||
* 批量删除记录
|
||||
* @param ids 主键id集合
|
||||
*/
|
||||
void deleteByIds(@Param("ids") Collection<Long> ids);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,344 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.engine.salary.mapper.report.SalaryStatisticsItemMapper">
|
||||
<resultMap id="BaseResultMap" type="com.engine.salary.report.entity.po.SalaryStatisticsItemPO">
|
||||
<result column="avg_rule" property="avgRule"/>
|
||||
<result column="count_rule" property="countRule"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="creator" property="creator"/>
|
||||
<result column="delete_type" property="deleteType"/>
|
||||
<result column="id" property="id"/>
|
||||
<result column="index_value" property="indexValue"/>
|
||||
<result column="item_name" property="itemName"/>
|
||||
<result column="item_value" property="itemValue"/>
|
||||
<result column="max_rule" property="maxRule"/>
|
||||
<result column="median_rule" property="medianRule"/>
|
||||
<result column="min_rule" property="minRule"/>
|
||||
<result column="stat_report_id" property="statReportId"/>
|
||||
<result column="sum_rule" property="sumRule"/>
|
||||
<result column="tenant_key" property="tenantKey"/>
|
||||
<result column="unit_type" property="unitType"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
<sql id="baseColumns">
|
||||
t
|
||||
.
|
||||
avg_rule
|
||||
, t.count_rule
|
||||
, t.create_time
|
||||
, t.creator
|
||||
, t.delete_type
|
||||
, t.id
|
||||
, t.index_value
|
||||
, t.item_name
|
||||
, t.item_value
|
||||
, t.max_rule
|
||||
, t.median_rule
|
||||
, t.min_rule
|
||||
, t.stat_report_id
|
||||
, t.sum_rule
|
||||
, t.tenant_key
|
||||
, t.unit_type
|
||||
, t.update_time
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
<select id="listAll" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_salary_statistics_item t
|
||||
WHERE delete_type = 0
|
||||
</select>
|
||||
|
||||
<!-- 根据主键获取单条记录 -->
|
||||
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_salary_statistics_item t
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</select>
|
||||
|
||||
<!-- 条件查询 -->
|
||||
<select id="listSome" resultMap="BaseResultMap"
|
||||
parameterType="com.engine.salary.report.entity.po.SalaryStatisticsItemPO">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_salary_statistics_item t
|
||||
WHERE delete_type = 0
|
||||
<if test="avgRule != null">
|
||||
AND avg_rule = #{avgRule}
|
||||
</if>
|
||||
<if test="countRule != null">
|
||||
AND count_rule = #{countRule}
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
AND create_time = #{createTime}
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
AND creator = #{creator}
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
AND delete_type = #{deleteType}
|
||||
</if>
|
||||
<if test="id != null">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
<if test="indexValue != null">
|
||||
AND index_value = #{indexValue}
|
||||
</if>
|
||||
<if test="itemName != null">
|
||||
AND item_name = #{itemName}
|
||||
</if>
|
||||
<if test="itemValue != null">
|
||||
AND item_value = #{itemValue}
|
||||
</if>
|
||||
<if test="maxRule != null">
|
||||
AND max_rule = #{maxRule}
|
||||
</if>
|
||||
<if test="medianRule != null">
|
||||
AND median_rule = #{medianRule}
|
||||
</if>
|
||||
<if test="minRule != null">
|
||||
AND min_rule = #{minRule}
|
||||
</if>
|
||||
<if test="statReportId != null">
|
||||
AND stat_report_id = #{statReportId}
|
||||
</if>
|
||||
<if test="sumRule != null">
|
||||
AND sum_rule = #{sumRule}
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
AND tenant_key = #{tenantKey}
|
||||
</if>
|
||||
<if test="unitType != null">
|
||||
AND unit_type = #{unitType}
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
AND update_time = #{updateTime}
|
||||
</if>
|
||||
<if test="ids != null and ids.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY index_value
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 插入不为NULL的字段 -->
|
||||
<insert id="insertIgnoreNull" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsItemPO">
|
||||
INSERT INTO hrsa_salary_statistics_item
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
<if test="avgRule != null">
|
||||
avg_rule,
|
||||
</if>
|
||||
<if test="countRule != null">
|
||||
count_rule,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator,
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type,
|
||||
</if>
|
||||
<if test="id != null">
|
||||
id,
|
||||
</if>
|
||||
<if test="indexValue != null">
|
||||
index_value,
|
||||
</if>
|
||||
<if test="itemName != null">
|
||||
item_name,
|
||||
</if>
|
||||
<if test="itemValue != null">
|
||||
item_value,
|
||||
</if>
|
||||
<if test="maxRule != null">
|
||||
max_rule,
|
||||
</if>
|
||||
<if test="medianRule != null">
|
||||
median_rule,
|
||||
</if>
|
||||
<if test="minRule != null">
|
||||
min_rule,
|
||||
</if>
|
||||
<if test="statReportId != null">
|
||||
stat_report_id,
|
||||
</if>
|
||||
<if test="sumRule != null">
|
||||
sum_rule,
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
tenant_key,
|
||||
</if>
|
||||
<if test="unitType != null">
|
||||
unit_type,
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="avgRule != null">
|
||||
#{avgRule},
|
||||
</if>
|
||||
<if test="countRule != null">
|
||||
#{countRule},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
#{creator},
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
#{deleteType},
|
||||
</if>
|
||||
<if test="id != null">
|
||||
#{id},
|
||||
</if>
|
||||
<if test="indexValue != null">
|
||||
#{indexValue},
|
||||
</if>
|
||||
<if test="itemName != null">
|
||||
#{itemName},
|
||||
</if>
|
||||
<if test="itemValue != null">
|
||||
#{itemValue},
|
||||
</if>
|
||||
<if test="maxRule != null">
|
||||
#{maxRule},
|
||||
</if>
|
||||
<if test="medianRule != null">
|
||||
#{medianRule},
|
||||
</if>
|
||||
<if test="minRule != null">
|
||||
#{minRule},
|
||||
</if>
|
||||
<if test="statReportId != null">
|
||||
#{statReportId},
|
||||
</if>
|
||||
<if test="sumRule != null">
|
||||
#{sumRule},
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="unitType != null">
|
||||
#{unitType},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="update" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsItemPO">
|
||||
UPDATE hrsa_salary_statistics_item
|
||||
<set>
|
||||
avg_rule=#{avgRule},
|
||||
count_rule=#{countRule},
|
||||
create_time=#{createTime},
|
||||
creator=#{creator},
|
||||
delete_type=#{deleteType},
|
||||
index_value=#{indexValue},
|
||||
item_name=#{itemName},
|
||||
item_value=#{itemValue},
|
||||
max_rule=#{maxRule},
|
||||
median_rule=#{medianRule},
|
||||
min_rule=#{minRule},
|
||||
stat_report_id=#{statReportId},
|
||||
sum_rule=#{sumRule},
|
||||
tenant_key=#{tenantKey},
|
||||
unit_type=#{unitType},
|
||||
update_time=#{updateTime},
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 更新不为NULL的字段 -->
|
||||
<update id="updateIgnoreNull" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsItemPO">
|
||||
UPDATE hrsa_salary_statistics_item
|
||||
<set>
|
||||
<if test="avgRule != null">
|
||||
avg_rule=#{avgRule},
|
||||
</if>
|
||||
<if test="countRule != null">
|
||||
count_rule=#{countRule},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time=#{createTime},
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator=#{creator},
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type=#{deleteType},
|
||||
</if>
|
||||
<if test="indexValue != null">
|
||||
index_value=#{indexValue},
|
||||
</if>
|
||||
<if test="itemName != null">
|
||||
item_name=#{itemName},
|
||||
</if>
|
||||
<if test="itemValue != null">
|
||||
item_value=#{itemValue},
|
||||
</if>
|
||||
<if test="maxRule != null">
|
||||
max_rule=#{maxRule},
|
||||
</if>
|
||||
<if test="medianRule != null">
|
||||
median_rule=#{medianRule},
|
||||
</if>
|
||||
<if test="minRule != null">
|
||||
min_rule=#{minRule},
|
||||
</if>
|
||||
<if test="statReportId != null">
|
||||
stat_report_id=#{statReportId},
|
||||
</if>
|
||||
<if test="sumRule != null">
|
||||
sum_rule=#{sumRule},
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
tenant_key=#{tenantKey},
|
||||
</if>
|
||||
<if test="unitType != null">
|
||||
unit_type=#{unitType},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
update_time=#{updateTime},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 根据主键删除记录 -->
|
||||
<delete id="delete">
|
||||
UPDATE hrsa_salary_statistics_item
|
||||
SET delete_type=1
|
||||
WHERE id = #{id}
|
||||
AND delete_type = 0
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByIds">
|
||||
UPDATE hrsa_salary_statistics_item
|
||||
SET delete_type = 1
|
||||
WHERE delete_type = 0
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
package com.engine.salary.report.entity.bo;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.salary.component.WeaTableColumnGroup;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
||||
import com.engine.salary.report.common.constant.SalaryStatisticsDimensionConstant;
|
||||
import com.engine.salary.report.entity.dto.SalaryStatisticsItemRuleDTO;
|
||||
|
|
@ -26,6 +28,7 @@ import org.springframework.beans.BeanUtils;
|
|||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -87,17 +90,17 @@ public class SalaryStatisticsReportBO {
|
|||
param.setSalaryEndMonth(ReportTimeUtil.getFormatYearMonth(po.getSalaryEndMonth()));
|
||||
|
||||
// todo 待优化
|
||||
String key = "id";
|
||||
param.setTaxAgent(JSON.parseArray(po.getTaxAgentSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setIncomeCategory(JSON.parseArray(po.getIncomeCategorySetting(), Map.class).stream().map(m -> Integer.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setSubCompany(JSON.parseArray(po.getSubCompanySetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setDepart(JSON.parseArray(po.getDepartSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setGrade(JSON.parseArray(po.getGradeSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setPosition(JSON.parseArray(po.getPositionSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setStatus(JSON.parseArray(po.getStatusSetting(), Map.class).stream().map(m -> m.get(key).toString()).collect(Collectors.toList()));
|
||||
param.setEmployee(JSON.parseArray(po.getEmployeeSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
param.setHiredate(JSON.parseArray(po.getHiredateSetting(), LocalDate.class));
|
||||
param.setLeavedate(JSON.parseArray(po.getLeavedateSetting(), LocalDate.class));
|
||||
// String key = "id";
|
||||
// param.setTaxAgent(JSON.parseArray(po.getTaxAgentSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setIncomeCategory(JSON.parseArray(po.getIncomeCategorySetting(), Map.class).stream().map(m -> Integer.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setSubCompany(JSON.parseArray(po.getSubCompanySetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setDepart(JSON.parseArray(po.getDepartSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setGrade(JSON.parseArray(po.getGradeSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setPosition(JSON.parseArray(po.getPositionSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setStatus(JSON.parseArray(po.getStatusSetting(), Map.class).stream().map(m -> m.get(key).toString()).collect(Collectors.toList()));
|
||||
// param.setEmployee(JSON.parseArray(po.getEmployeeSetting(), Map.class).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList()));
|
||||
// param.setHiredate(JSON.parseArray(po.getHiredateSetting(), LocalDate.class));
|
||||
// param.setLeavedate(JSON.parseArray(po.getLeavedateSetting(), LocalDate.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -114,15 +117,15 @@ public class SalaryStatisticsReportBO {
|
|||
if (SalaryStatisticsDimensionConstant.DM_SALARY_MONTH.equals(dimension.getDimCode())) {
|
||||
lastParam.setSalaryStartMonth(ReportTimeUtil.getLastYearMonth(param.getSalaryStartMonth()));
|
||||
lastParam.setSalaryEndMonth(ReportTimeUtil.getLastYearMonth(param.getSalaryEndMonth()));
|
||||
// 年份
|
||||
// 年份
|
||||
} else if (SalaryStatisticsDimensionConstant.DM_YEAR.equals(dimension.getDimCode())) {
|
||||
lastParam.setSalaryStartMonth(ReportTimeUtil.getSameYearMonth(param.getSalaryStartMonth()));
|
||||
lastParam.setSalaryEndMonth(ReportTimeUtil.getSameYearMonth(param.getSalaryEndMonth()));
|
||||
// 半年度
|
||||
// 半年度
|
||||
} else if (SalaryStatisticsDimensionConstant.DM_HALF_YEAR.equals(dimension.getDimCode())) {
|
||||
lastParam.setSalaryStartMonth(ReportTimeUtil.getPlusYearMonth(param.getSalaryStartMonth(), -6));
|
||||
lastParam.setSalaryEndMonth(ReportTimeUtil.getPlusYearMonth(param.getSalaryEndMonth(), -6));
|
||||
// 季度
|
||||
// 季度
|
||||
} else if (SalaryStatisticsDimensionConstant.DM_QUARTER.equals(dimension.getDimCode())) {
|
||||
lastParam.setSalaryStartMonth(ReportTimeUtil.getPlusYearMonth(param.getSalaryStartMonth(), -3));
|
||||
lastParam.setSalaryEndMonth(ReportTimeUtil.getPlusYearMonth(param.getSalaryEndMonth(), -3));
|
||||
|
|
@ -199,7 +202,6 @@ public class SalaryStatisticsReportBO {
|
|||
}
|
||||
|
||||
|
||||
|
||||
private static void calculate4Sum(Map<String, String> result, SalaryStatisticsItemPO item, List<Map<String, String>> nowDetail, List<Map<String, String>> lastDetail, List<Map<String, String>> sameDetail) {
|
||||
SalaryStatisticsItemRuleDTO sumRule = JSON.parseObject(item.getSumRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (sumRule == null || sumRule.getTotalValue() != 1) {
|
||||
|
|
@ -487,7 +489,7 @@ public class SalaryStatisticsReportBO {
|
|||
* @param sumDecimal
|
||||
*/
|
||||
private static void nowAndRatio(Map<String, String> result, SalaryStatisticsItemPO item, SalaryStatisticsItemRuleDTO rule, String ruleKey, BigDecimal sumDecimal) {
|
||||
String keyPrefix = item.getId().toString() + UD +ruleKey;
|
||||
String keyPrefix = item.getId().toString() + UD + ruleKey;
|
||||
// 本期合计
|
||||
result.put(keyPrefix + K_NOW, ReportDataUtil.thousandthConvert(unitTypeConvert(sumDecimal, item.getUnitType())));
|
||||
// 占比:和本期合计一样的值,便于计算
|
||||
|
|
@ -507,7 +509,7 @@ public class SalaryStatisticsReportBO {
|
|||
* @param lastValue
|
||||
*/
|
||||
private static void lastM2m(Map<String, String> result, SalaryStatisticsItemPO item, SalaryStatisticsItemRuleDTO rule, String ruleKey, BigDecimal nowValue, BigDecimal lastValue) {
|
||||
String keyPrefix = item.getId().toString() + UD +ruleKey;
|
||||
String keyPrefix = item.getId().toString() + UD + ruleKey;
|
||||
// 上期合计
|
||||
result.put(keyPrefix + P_LAST, ReportDataUtil.thousandthConvert(unitTypeConvert(lastValue, item.getUnitType())));
|
||||
// 合计环比差值
|
||||
|
|
@ -531,7 +533,7 @@ public class SalaryStatisticsReportBO {
|
|||
* @param sameValue
|
||||
*/
|
||||
private static void sameY2y(Map<String, String> result, SalaryStatisticsItemPO item, SalaryStatisticsItemRuleDTO rule, String ruleKey, BigDecimal nowValue, BigDecimal sameValue) {
|
||||
String keyPrefix = item.getId().toString() + UD +ruleKey;
|
||||
String keyPrefix = item.getId().toString() + UD + ruleKey;
|
||||
// 同期合计
|
||||
result.put(keyPrefix + P_SAME, ReportDataUtil.thousandthConvert(unitTypeConvert(sameValue, item.getUnitType())));
|
||||
// 合计同比差值
|
||||
|
|
@ -551,7 +553,7 @@ public class SalaryStatisticsReportBO {
|
|||
* @return
|
||||
*/
|
||||
public static BigDecimal max(List<BigDecimal> list) {
|
||||
if(CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
if (CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
// BigDecimal max = Collections.max(list);
|
||||
|
||||
BigDecimal sum = list.get(0);
|
||||
|
|
@ -568,7 +570,7 @@ public class SalaryStatisticsReportBO {
|
|||
* @return
|
||||
*/
|
||||
public static BigDecimal min(List<BigDecimal> list) {
|
||||
if(CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
if (CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
// BigDecimal min = Collections.min(list);
|
||||
BigDecimal sum = list.get(0);
|
||||
for (int i = 1; i < list.size(); i++) {
|
||||
|
|
@ -584,13 +586,13 @@ public class SalaryStatisticsReportBO {
|
|||
* @return
|
||||
*/
|
||||
public static BigDecimal median(List<BigDecimal> list) {
|
||||
if(CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
if (CollectionUtils.isEmpty(list)) return new BigDecimal(D_ZERO);
|
||||
Collections.sort(list);
|
||||
int size = list.size();
|
||||
if (size % 2 == 1) {
|
||||
return list.get((size - 1) / 2);
|
||||
} else {
|
||||
return (list.get(size/2-1).add(list.get(size/2))).divide(new BigDecimal(2), 2, RoundingMode.HALF_UP);
|
||||
return (list.get(size / 2 - 1).add(list.get(size / 2))).divide(new BigDecimal(2), 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -621,9 +623,10 @@ public class SalaryStatisticsReportBO {
|
|||
/**
|
||||
* 定量-组距式分组list分割
|
||||
* 说明:
|
||||
* 1.如果是年:每个人的年份值在这个区间内;如果没有所属字段:各个字段值在区间内;如果有所属字敦:则该所属字段在区间内的数据
|
||||
* 2.区间内的话,就把id搞出来
|
||||
* 3.符合id的list筛选出来返回
|
||||
* 1.如果是年:每个人的年份值在这个区间内;如果没有所属字段:各个字段值在区间内;如果有所属字敦:则该所属字段在区间内的数据
|
||||
* 2.区间内的话,就把id搞出来
|
||||
* 3.符合id的list筛选出来返回
|
||||
*
|
||||
* @param groupSpacing
|
||||
* @param groupBelong
|
||||
* @param dimCode
|
||||
|
|
@ -738,24 +741,23 @@ public class SalaryStatisticsReportBO {
|
|||
* @param page
|
||||
* @param salaryStatisticsItemList
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
public static Map<String, Object> buildTotal(PageInfo<Map<String, Object>> page, List<SalaryStatisticsItemPO> salaryStatisticsItemList, Long employeeId, String tenantKey) {
|
||||
public static Map<String, Object> buildTotal(PageInfo<Map<String, Object>> page, List<SalaryStatisticsItemPO> salaryStatisticsItemList, Long employeeId) {
|
||||
Map<String, SalaryStatisticsItemPO> salaryStatisticsItemMap = SalaryEntityUtil.convert2Map(salaryStatisticsItemList, k -> k.getId() + "-" + employeeId);
|
||||
|
||||
List<Map<String, Object>> records = page.getList();
|
||||
if (CollectionUtils.isNotEmpty(records)) {
|
||||
Set<String> keys = records.get(0).keySet();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("dimension", SalaryI18nUtil.getI18nLabel( 93278, "合计"));
|
||||
map.put("dimension", SalaryI18nUtil.getI18nLabel(93278, "合计"));
|
||||
Map<Long, SalaryStatisticsItemPO> itemPOMap = new HashMap<>();
|
||||
keys.forEach(key -> {
|
||||
if (key.contains(COUNT+K_NOW) || key.contains(COUNT+K_LAST) || key.contains(COUNT+K_SAME)
|
||||
|| key.contains(SUM+K_NOW) || key.contains(SUM+K_LAST) || key.contains(SUM+K_SAME)
|
||||
|| key.contains(AVG+K_NOW) || key.contains(AVG+K_LAST) || key.contains(AVG+K_SAME)
|
||||
|| key.contains(MAX+K_NOW) || key.contains(MAX+K_LAST) || key.contains(MAX+K_SAME)
|
||||
|| key.contains(MIN+K_NOW) || key.contains(MIN+K_LAST) || key.contains(MIN+K_SAME)
|
||||
|| key.contains(MEDIAN+K_NOW) || key.contains(MEDIAN+K_LAST) || key.contains(MEDIAN+K_SAME)) {
|
||||
if (key.contains(COUNT + K_NOW) || key.contains(COUNT + K_LAST) || key.contains(COUNT + K_SAME)
|
||||
|| key.contains(SUM + K_NOW) || key.contains(SUM + K_LAST) || key.contains(SUM + K_SAME)
|
||||
|| key.contains(AVG + K_NOW) || key.contains(AVG + K_LAST) || key.contains(AVG + K_SAME)
|
||||
|| key.contains(MAX + K_NOW) || key.contains(MAX + K_LAST) || key.contains(MAX + K_SAME)
|
||||
|| key.contains(MIN + K_NOW) || key.contains(MIN + K_LAST) || key.contains(MIN + K_SAME)
|
||||
|| key.contains(MEDIAN + K_NOW) || key.contains(MEDIAN + K_LAST) || key.contains(MEDIAN + K_SAME)) {
|
||||
String keyStr = key.split(UD)[0];
|
||||
SalaryStatisticsItemPO salaryStatisticsItem = salaryStatisticsItemMap.get(Long.valueOf(keyStr) + "-" + employeeId);
|
||||
itemPOMap.put(salaryStatisticsItem.getId(), salaryStatisticsItem);
|
||||
|
|
@ -824,139 +826,140 @@ public class SalaryStatisticsReportBO {
|
|||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
// public static List<WeaTableColumn> buildReportColumns(String dimensionName, List<SalaryStatisticsItemPO> salaryStatisticsItemList, Long employeeId, String tenantKey) {
|
||||
// List<WeaTableColumn> result = new ArrayList<>();
|
||||
// result.add(new SubTableRankColumn(dimensionName, "dimension", "150", null, null, WeaAlignEnum.CENTER.getStringVal(), "left"));
|
||||
// Map<Long, SalaryStatisticsItemPO> itemMap = salaryStatisticsItemList.stream().collect(Collectors.toMap(SalaryStatisticsItemPO::getId, Function.identity()));
|
||||
// Map<Long, String> itemIdNameMap = salaryStatisticsItemList.stream().collect(LinkedHashMap::new, (map, item) -> map.put(item.getId(), item.getItemName()), LinkedHashMap::putAll);
|
||||
// itemIdNameMap.forEach((k, v) -> {
|
||||
// SubTableRankColumn weaTableColumn = new SubTableRankColumn(v, k.toString(), "300", null, null, WeaAlignEnum.CENTER.getStringVal());
|
||||
// SalaryStatisticsItemPO itemPO = itemMap.get(k);
|
||||
// List<SubTableRankColumn> children = new ArrayList<>();
|
||||
// // 1.合计规则children
|
||||
// SalaryStatisticsItemRuleDTO countRule = JSON.parseObject(itemPO.getCountRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (countRule != null && 1 == countRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157127, "本周期(计数)"), k + UD + COUNT + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (countRule != null && 1 == countRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174288, "本周期占比(计数)"), k + UD + COUNT + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (countRule != null && 1 == countRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157128, "上周期(计数)"), k + UD + COUNT + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157129, "计数环比差值"), k + UD + COUNT + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157130, "计数环比增幅"), k + UD + COUNT + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (countRule != null && 1 == countRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180672, "同比周期(计数)"), k + UD + COUNT + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174391, "计数同比差值"), k + UD + COUNT + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174392, "计数同比增幅"), k + UD + COUNT + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// // 2.求和规则children
|
||||
// SalaryStatisticsItemRuleDTO totalRule = JSON.parseObject(itemPO.getSumRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (totalRule != null && 1 == totalRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157145, "本周期(求和)"), k + UD + SUM + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (totalRule != null && 1 == totalRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174289, "本周期占比(求和)"), k + UD + SUM + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (totalRule != null && 1 == totalRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157146, "上周期(求和)"), k + UD + SUM + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157147, "求和环比差值"), k + UD + SUM + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 157148, "求和环比增幅"), k + UD + SUM + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (totalRule != null && 1 == totalRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180673, "同比周期(求和)"), k + UD + SUM + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174388, "求和同比差值"), k + UD + SUM + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174389, "求和同比增幅"), k + UD + SUM + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// // 3.平均值规则children
|
||||
// SalaryStatisticsItemRuleDTO avgRule = JSON.parseObject(itemPO.getAvgRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (avgRule != null && 1 == avgRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174258, "本周期(平均值)"), k + UD + AVG + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (avgRule != null && 1 == avgRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174290, "本周期占比(平均值)"), k + UD + AVG + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (avgRule != null && 1 == avgRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174257, "上周期(平均值)"), k + UD + AVG + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174256, "平均值环比差值"), k + UD + AVG + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174255, "平均值环比增幅"), k + UD + AVG + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (avgRule != null && 1 == avgRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180674, "同比周期(平均值)"), k + UD + AVG + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174385, "平均值同比差值"), k + UD + AVG + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174386, "平均值同比增幅"), k + UD + AVG + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// // 4.最大值规则children
|
||||
// SalaryStatisticsItemRuleDTO maxRule = JSON.parseObject(itemPO.getMaxRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (maxRule != null && 1 == maxRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174254, "本周期(最大值)"), k + UD + MAX + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (maxRule != null && 1 == maxRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174291, "本周期占比(最大值)"), k + UD + MAX + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (maxRule != null && 1 == maxRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174253, "上周期(最大值)"), k + UD + MAX + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174252, "最大值环比差值"), k + UD + MAX + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174251, "最大值环比增幅"), k + UD + MAX + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (maxRule != null && 1 == maxRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180675, "同比周期(最大值)"), k + UD + MAX + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174382, "最大值同比差值"), k + UD + MAX + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174383, "最大值同比增幅"), k + UD + MAX + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// // 5.最小值规则children
|
||||
// SalaryStatisticsItemRuleDTO minRule = JSON.parseObject(itemPO.getMinRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (minRule != null && 1 == minRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174250, "本周期(最小值)"), k + UD + MIN + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (minRule != null && 1 == minRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174292, "本周期占比(最小值)"), k + UD + MIN + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (minRule != null && 1 == minRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174249, "上周期(最小值)"), k + UD + MIN + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174248, "最小值环比差值"), k + UD + MIN + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174247, "最小值环比增幅"), k + UD + MIN + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (minRule != null && 1 == minRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180676, "同比周期(最小值)"), k + UD + MIN + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174379, "最小值同比差值"), k + UD + MIN + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174380, "最小值同比增幅"), k + UD + MIN + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// // 6.中位数规则children
|
||||
// SalaryStatisticsItemRuleDTO medianRule = JSON.parseObject(itemPO.getMedianRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
// if (medianRule != null && 1 == medianRule.getTotalValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174246, "本周期(中位数)"),k + UD + MEDIAN + P_NOW, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (medianRule != null && 1 == medianRule.getRatioValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174293, "本周期占比(中位数)"), k + UD + MEDIAN + P_RATIO, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (medianRule != null && 1 == medianRule.getM2mValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174245, "上周期(中位数)"), k + UD + MEDIAN + P_LAST, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174244, "中位数环比差值"), k + UD + MEDIAN + P_M2M_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174243, "中位数环比增幅"), k + UD + MEDIAN + P_M2M_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// if (medianRule != null && 1 == medianRule.getY2yValue()) {
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 180677, "同比周期(中位数)"), k + UD + MEDIAN + P_SAME, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174376, "中位数同比差值"), k + UD + MEDIAN + P_Y2Y_D_VALUE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// children.add(new SubTableRankColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 174377, "中位数同比增幅"), k + UD + MEDIAN + P_Y2Y_INCREASE, COL_WIDTH, null, null, WeaAlignEnum.CENTER.getStringVal()));
|
||||
// }
|
||||
// weaTableColumn.setChildren(children);
|
||||
// result.add(weaTableColumn);
|
||||
// });
|
||||
// return result;
|
||||
// }
|
||||
public static List<WeaTableColumn> buildReportColumns(String dimensionName, List<SalaryStatisticsItemPO> salaryStatisticsItemList) {
|
||||
List<WeaTableColumn> result = new ArrayList<>();
|
||||
|
||||
result.add(new WeaTableColumnGroup("150", dimensionName, "dimension"));
|
||||
Map<Long, SalaryStatisticsItemPO> itemMap = salaryStatisticsItemList.stream().collect(Collectors.toMap(SalaryStatisticsItemPO::getId, Function.identity()));
|
||||
Map<Long, String> itemIdNameMap = salaryStatisticsItemList.stream().collect(LinkedHashMap::new, (map, item) -> map.put(item.getId(), item.getItemName()), LinkedHashMap::putAll);
|
||||
itemIdNameMap.forEach((k, v) -> {
|
||||
WeaTableColumnGroup weaTableColumn = new WeaTableColumnGroup("300", k.toString(), v);
|
||||
SalaryStatisticsItemPO itemPO = itemMap.get(k);
|
||||
List<WeaTableColumnGroup> children = new ArrayList<>();
|
||||
// 1.合计规则children
|
||||
SalaryStatisticsItemRuleDTO countRule = JSON.parseObject(itemPO.getCountRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (countRule != null && 1 == countRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157127, "本周期(计数)"), k + UD + COUNT + P_NOW));
|
||||
}
|
||||
if (countRule != null && 1 == countRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174288, "本周期占比(计数)"), k + UD + COUNT + P_RATIO));
|
||||
}
|
||||
if (countRule != null && 1 == countRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157128, "上周期(计数)"), k + UD + COUNT + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157129, "计数环比差值"), k + UD + COUNT + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157130, "计数环比增幅"), k + UD + COUNT + P_M2M_INCREASE));
|
||||
}
|
||||
if (countRule != null && 1 == countRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180672, "同比周期(计数)"), k + UD + COUNT + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174391, "计数同比差值"), k + UD + COUNT + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174392, "计数同比增幅"), k + UD + COUNT + P_Y2Y_INCREASE));
|
||||
}
|
||||
// 2.求和规则children
|
||||
SalaryStatisticsItemRuleDTO totalRule = JSON.parseObject(itemPO.getSumRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (totalRule != null && 1 == totalRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157145, "本周期(求和)"), k + UD + SUM + P_NOW));
|
||||
}
|
||||
if (totalRule != null && 1 == totalRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174289, "本周期占比(求和)"), k + UD + SUM + P_RATIO));
|
||||
}
|
||||
if (totalRule != null && 1 == totalRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157146, "上周期(求和)"), k + UD + SUM + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157147, "求和环比差值"), k + UD + SUM + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(157148, "求和环比增幅"), k + UD + SUM + P_M2M_INCREASE));
|
||||
}
|
||||
if (totalRule != null && 1 == totalRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180673, "同比周期(求和)"), k + UD + SUM + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174388, "求和同比差值"), k + UD + SUM + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174389, "求和同比增幅"), k + UD + SUM + P_Y2Y_INCREASE));
|
||||
}
|
||||
// 3.平均值规则children
|
||||
SalaryStatisticsItemRuleDTO avgRule = JSON.parseObject(itemPO.getAvgRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (avgRule != null && 1 == avgRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174258, "本周期(平均值)"), k + UD + AVG + P_NOW));
|
||||
}
|
||||
if (avgRule != null && 1 == avgRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174290, "本周期占比(平均值)"), k + UD + AVG + P_RATIO));
|
||||
}
|
||||
if (avgRule != null && 1 == avgRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174257, "上周期(平均值)"), k + UD + AVG + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174256, "平均值环比差值"), k + UD + AVG + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174255, "平均值环比增幅"), k + UD + AVG + P_M2M_INCREASE));
|
||||
}
|
||||
if (avgRule != null && 1 == avgRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180674, "同比周期(平均值)"), k + UD + AVG + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174385, "平均值同比差值"), k + UD + AVG + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174386, "平均值同比增幅"), k + UD + AVG + P_Y2Y_INCREASE));
|
||||
}
|
||||
// 4.最大值规则children
|
||||
SalaryStatisticsItemRuleDTO maxRule = JSON.parseObject(itemPO.getMaxRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (maxRule != null && 1 == maxRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174254, "本周期(最大值)"), k + UD + MAX + P_NOW));
|
||||
}
|
||||
if (maxRule != null && 1 == maxRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174291, "本周期占比(最大值)"), k + UD + MAX + P_RATIO));
|
||||
}
|
||||
if (maxRule != null && 1 == maxRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174253, "上周期(最大值)"), k + UD + MAX + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174252, "最大值环比差值"), k + UD + MAX + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174251, "最大值环比增幅"), k + UD + MAX + P_M2M_INCREASE));
|
||||
}
|
||||
if (maxRule != null && 1 == maxRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180675, "同比周期(最大值)"), k + UD + MAX + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174382, "最大值同比差值"), k + UD + MAX + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174383, "最大值同比增幅"), k + UD + MAX + P_Y2Y_INCREASE));
|
||||
}
|
||||
// 5.最小值规则children
|
||||
SalaryStatisticsItemRuleDTO minRule = JSON.parseObject(itemPO.getMinRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (minRule != null && 1 == minRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174250, "本周期(最小值)"), k + UD + MIN + P_NOW));
|
||||
}
|
||||
if (minRule != null && 1 == minRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174292, "本周期占比(最小值)"), k + UD + MIN + P_RATIO));
|
||||
}
|
||||
if (minRule != null && 1 == minRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174249, "上周期(最小值)"), k + UD + MIN + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174248, "最小值环比差值"), k + UD + MIN + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174247, "最小值环比增幅"), k + UD + MIN + P_M2M_INCREASE));
|
||||
}
|
||||
if (minRule != null && 1 == minRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180676, "同比周期(最小值)"), k + UD + MIN + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174379, "最小值同比差值"), k + UD + MIN + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174380, "最小值同比增幅"), k + UD + MIN + P_Y2Y_INCREASE));
|
||||
}
|
||||
// 6.中位数规则children
|
||||
SalaryStatisticsItemRuleDTO medianRule = JSON.parseObject(itemPO.getMedianRule(), SalaryStatisticsItemRuleDTO.class);
|
||||
if (medianRule != null && 1 == medianRule.getTotalValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174246, "本周期(中位数)"), k + UD + MEDIAN + P_NOW));
|
||||
}
|
||||
if (medianRule != null && 1 == medianRule.getRatioValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174293, "本周期占比(中位数)"), k + UD + MEDIAN + P_RATIO));
|
||||
}
|
||||
if (medianRule != null && 1 == medianRule.getM2mValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174245, "上周期(中位数)"), k + UD + MEDIAN + P_LAST));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174244, "中位数环比差值"), k + UD + MEDIAN + P_M2M_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174243, "中位数环比增幅"), k + UD + MEDIAN + P_M2M_INCREASE));
|
||||
}
|
||||
if (medianRule != null && 1 == medianRule.getY2yValue()) {
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(180677, "同比周期(中位数)"), k + UD + MEDIAN + P_SAME));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174376, "中位数同比差值"), k + UD + MEDIAN + P_Y2Y_D_VALUE));
|
||||
children.add(new WeaTableColumnGroup(COL_WIDTH, SalaryI18nUtil.getI18nLabel(174377, "中位数同比增幅"), k + UD + MEDIAN + P_Y2Y_INCREASE));
|
||||
}
|
||||
weaTableColumn.setChildren(children);
|
||||
result.add(weaTableColumn);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
// public static ExportCommonParam buildExportParam(String dimName, List<WeaTableColumn> weaTableColumns, List<Map<String, String>> records) {
|
||||
// List<ExportColumn> columns = com.google.common.collect.Lists.newArrayList();
|
||||
// weaTableColumns.forEach(column -> {
|
||||
// SubTableRankColumn subTableRankColumn = (SubTableRankColumn) column;
|
||||
// WeaTableColumnGroup WeaTableColumnGroup = (WeaTableColumnGroup) column;
|
||||
// ExportColumn exportColumn = new ExportColumn();
|
||||
// exportColumn.setKeyIndex(subTableRankColumn.getDataIndex());
|
||||
// exportColumn.setValue(subTableRankColumn.getTitle());
|
||||
// if (CollectionUtils.isNotEmpty(subTableRankColumn.getChildren())) {
|
||||
// exportColumn.setKeyIndex(WeaTableColumnGroup.getDataIndex());
|
||||
// exportColumn.setValue(WeaTableColumnGroup.getTitle());
|
||||
// if (CollectionUtils.isNotEmpty(WeaTableColumnGroup.getChildren())) {
|
||||
// List<ExportColumn> subColumns = com.google.common.collect.Lists.newArrayList();
|
||||
// for (SubTableRankColumn sub : subTableRankColumn.getChildren()) {
|
||||
// for (WeaTableColumnGroup sub : WeaTableColumnGroup.getChildren()) {
|
||||
// ExportColumn subColumn = new ExportColumn();
|
||||
// subColumn.setKeyIndex(sub.getDataIndex());
|
||||
// subColumn.setValue(sub.getTitle());
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
|
|
@ -144,10 +145,10 @@ public class SalaryStatisticsItemPO implements Serializable {
|
|||
private Integer unitType;
|
||||
|
||||
//创建时间")
|
||||
private LocalDateTime createTime;
|
||||
private Date createTime;
|
||||
|
||||
//更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
private Date updateTime;
|
||||
|
||||
//创建人")
|
||||
private Long creator;
|
||||
|
|
@ -157,4 +158,6 @@ public class SalaryStatisticsItemPO implements Serializable {
|
|||
|
||||
//租户key")
|
||||
private String tenantKey;
|
||||
|
||||
private Collection<Long> ids;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,6 @@ public interface SalaryStatisticsReportService {
|
|||
/**
|
||||
* 获取薪酬报表列表
|
||||
*
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @return
|
||||
*/
|
||||
List<SalaryStatisticsReportPO> list();
|
||||
|
|
@ -39,7 +37,6 @@ public interface SalaryStatisticsReportService {
|
|||
* 获取单个薪酬统计报表
|
||||
*
|
||||
* @param id
|
||||
* @param currentTenantKey
|
||||
* @return
|
||||
*/
|
||||
SalaryStatisticsReportPO getById(Long id);
|
||||
|
|
@ -48,8 +45,6 @@ public interface SalaryStatisticsReportService {
|
|||
* 保存薪酬统计报表
|
||||
*
|
||||
* @param saveParam
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @return
|
||||
*/
|
||||
String save(SalaryStatisticsReportSaveParam saveParam );
|
||||
|
|
@ -58,8 +53,6 @@ public interface SalaryStatisticsReportService {
|
|||
* 删除薪酬统计报表
|
||||
*
|
||||
* @param ids
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> delete(Collection<Long> ids );
|
||||
|
|
@ -80,9 +73,7 @@ public interface SalaryStatisticsReportService {
|
|||
* @param param
|
||||
* @param salaryStatisticsReport
|
||||
* @param salaryStatisticsItemList
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
PageInfo<Map<String, Object>> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportPO salaryStatisticsReport, List<SalaryStatisticsItemPO> salaryStatisticsItemList, Long employeeId, String tenantKey);
|
||||
PageInfo<Map<String, Object>> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportPO salaryStatisticsReport, List<SalaryStatisticsItemPO> salaryStatisticsItemList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
package com.engine.salary.report.service;
|
||||
|
||||
public interface SubTableExportService {
|
||||
|
||||
// Map<String, String> exportCommon(ExportCommonParam param, User currentUser, String tenantKey);
|
||||
|
||||
}
|
||||
|
|
@ -1,32 +1,24 @@
|
|||
package com.engine.salary.report.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.report.SalaryStatisticsItemMapper;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsItemSaveParam;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsItemPO;
|
||||
import com.engine.salary.report.enums.UnitTypeEnum;
|
||||
import com.engine.salary.report.service.SalaryStatisticsItemService;
|
||||
import com.engine.salary.util.SalaryAssert;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.weaver.common.distribution.genid.IdGenerator;
|
||||
import com.weaver.common.elog.dto.LoggerContext;
|
||||
import com.weaver.salary.report.dao.SalaryStatisticsItemMapper;
|
||||
import com.weaver.salary.report.entity.param.SalaryStatisticsItemSaveParam;
|
||||
import com.weaver.salary.report.entity.po.SubTablePO;
|
||||
import com.weaver.salary.report.enums.DeleteTypeEnum;
|
||||
import com.weaver.salary.report.enums.OperateTypeEnum;
|
||||
import com.weaver.salary.report.enums.UnitTypeEnum;
|
||||
import com.weaver.salary.report.exception.SalaryRunTimeException;
|
||||
import com.weaver.salary.report.util.SalaryAssert;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey;
|
||||
|
||||
/**
|
||||
* @Description: 薪酬报表自定义统计项目
|
||||
* @Author: wangxiangzhong
|
||||
|
|
@ -34,35 +26,32 @@ import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tena
|
|||
*/
|
||||
public class SalaryStatisticsItemServiceImpl extends Service implements SalaryStatisticsItemService {
|
||||
|
||||
|
||||
|
||||
private SalaryStatisticsItemMapper salaryStatisticsItemMapper;
|
||||
|
||||
@Override
|
||||
public SalaryStatisticsItemPO getById(Long id) {
|
||||
return new LambdaQueryChainWrapper<>(salaryStatisticsItemMapper)
|
||||
.eq(SalaryStatisticsItemPO::getDeleteType, 0)
|
||||
.eq(SalaryStatisticsItemPO::getTenantKey, currentTenantKey)
|
||||
.eq(SalaryStatisticsItemPO::getId, id)
|
||||
.eq(SalaryStatisticsItemPO::getCreator, currentEmployeeId)
|
||||
.one();
|
||||
if (id == null) {
|
||||
return null;
|
||||
}
|
||||
return salaryStatisticsItemMapper.getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryStatisticsItemPO> listByStatisticsReportId(Long statisticsReportId) {
|
||||
return new LambdaQueryChainWrapper<>(salaryStatisticsItemMapper)
|
||||
.eq(SalaryStatisticsItemPO::getDeleteType, 0)
|
||||
.eq(SalaryStatisticsItemPO::getTenantKey, currentTenantKey)
|
||||
.eq(SalaryStatisticsItemPO::getStatReportId, statisticsReportId)
|
||||
.orderByAsc(SalaryStatisticsItemPO::getIndexValue)
|
||||
.list();
|
||||
if (statisticsReportId == null) {
|
||||
return null;
|
||||
}
|
||||
return salaryStatisticsItemMapper.listSome(SalaryStatisticsItemPO.builder().statReportId(statisticsReportId).build());
|
||||
}
|
||||
|
||||
public List<SalaryStatisticsItemPO> listByIds(Collection<Long> ids, String currentTenantKey) {
|
||||
return new LambdaQueryChainWrapper<>(salaryStatisticsItemMapper)
|
||||
.eq(SalaryStatisticsItemPO::getDeleteType, 0)
|
||||
.eq(SalaryStatisticsItemPO::getTenantKey, currentTenantKey)
|
||||
.in(SalaryStatisticsItemPO::getId, ids)
|
||||
.list();
|
||||
public List<SalaryStatisticsItemPO> listByIds(Collection<Long> ids) {
|
||||
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
return salaryStatisticsItemMapper.listSome(SalaryStatisticsItemPO.builder().ids(ids).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -70,21 +59,16 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
|
|||
SalaryAssert.notEmpty(ids, SalaryI18nUtil.getI18nLabel(152638, "id不可为空"));
|
||||
List<SalaryStatisticsItemPO> list = this.listByIds(ids);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
new LambdaUpdateChainWrapper<>(salaryStatisticsItemMapper)
|
||||
.eq(SalaryStatisticsItemPO::getDeleteType, 0)
|
||||
.eq(SalaryStatisticsItemPO::getTenantKey)
|
||||
.in(SalaryStatisticsItemPO::getId, ids)
|
||||
.set(SalaryStatisticsItemPO::getDeleteType, 1)
|
||||
.update();
|
||||
list.forEach(po -> {
|
||||
LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setTargetId(String.valueOf(po.getId()));
|
||||
loggerContext.setTargetName(po.getItemName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152639, "删除统计项目"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152639, "删除统计项目"));
|
||||
salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
});
|
||||
salaryStatisticsItemMapper.deleteByIds(ids);
|
||||
// list.forEach(po -> {
|
||||
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
// loggerContext.setTargetId(String.valueOf(po.getId()));
|
||||
// loggerContext.setTargetName(po.getItemName());
|
||||
// loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
||||
// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152639, "删除统计项目"));
|
||||
// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152639, "删除统计项目"));
|
||||
// salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
// });
|
||||
}
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
|
@ -103,7 +87,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(152641, "统计项名称必填"));
|
||||
}
|
||||
|
||||
List<SalaryStatisticsItemPO> itemPOList = listByStatisticsReportId(saveParam.getStatReportId(), employeeId);
|
||||
List<SalaryStatisticsItemPO> itemPOList = listByStatisticsReportId(saveParam.getStatReportId());
|
||||
boolean isRepeat = itemPOList.stream().anyMatch(po -> saveParam.getItemName().equals(po.getItemName()));
|
||||
if (isRepeat) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(152642, "统计项目名称已经存在"));
|
||||
|
|
@ -112,12 +96,14 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
|
|||
List<Integer> indexValues = itemPOList.stream().map(SalaryStatisticsItemPO::getIndexValue).collect(Collectors.toList());
|
||||
Integer max = CollectionUtils.isEmpty(indexValues) ? 1 : Collections.max(indexValues);
|
||||
|
||||
Date now = new Date();
|
||||
|
||||
SalaryStatisticsItemPO subTableItemPO = SalaryStatisticsItemPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.createTime(LocalDateTime.now())
|
||||
.createTime(now)
|
||||
.deleteType(DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.itemName(saveParam.getItemName())
|
||||
.itemValue(Joiner.on(",").join(saveParam.getItemValue()))
|
||||
.itemValue(StringUtils.join(saveParam.getItemValue(), ","))
|
||||
.countRule(JSON.toJSONString(saveParam.getCountRule()))
|
||||
.sumRule(JSON.toJSONString(saveParam.getSumRule()))
|
||||
.avgRule(JSON.toJSONString(saveParam.getAvgRule()))
|
||||
|
|
@ -127,30 +113,30 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
|
|||
.indexValue(max + 1)
|
||||
.statReportId(saveParam.getStatReportId())
|
||||
.unitType(saveParam.getUnitType() == null ? UnitTypeEnum.YUAN.getItem() : saveParam.getUnitType())
|
||||
.creator(employeeId)
|
||||
.updateTime(LocalDateTime.now())
|
||||
.tenantKey(tenantKey)
|
||||
.creator((long)user.getUID())
|
||||
.updateTime(now)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
salaryStatisticsItemMapper.insert(subTableItemPO);
|
||||
salaryStatisticsItemMapper.insertIgnoreNull(subTableItemPO);
|
||||
|
||||
// 记录操作日志
|
||||
LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setTargetId(String.valueOf(subTableItemPO.getId()));
|
||||
loggerContext.setTargetName(subTableItemPO.getItemName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152643, "新增统计项目"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152643, "新增统计项目"));
|
||||
salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
// 更新
|
||||
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
// loggerContext.setTargetId(String.valueOf(subTableItemPO.getId()));
|
||||
// loggerContext.setTargetName(subTableItemPO.getItemName());
|
||||
// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
||||
// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152643, "新增统计项目"));
|
||||
// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152643, "新增统计项目"));
|
||||
// salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
// 更新
|
||||
} else {
|
||||
SalaryStatisticsItemPO itemPO = this.getById(saveParam.getId(), employeeId);
|
||||
SalaryStatisticsItemPO itemPO = this.getById(saveParam.getId());
|
||||
SalaryAssert.notNull(itemPO, SalaryI18nUtil.getI18nLabel(152591, "统计项目不存在"));
|
||||
Optional.ofNullable(saveParam.getItemName()).ifPresent(itemPO::setItemName);
|
||||
|
||||
if (Objects.nonNull(saveParam.getUnitType())) {
|
||||
itemPO.setUnitType(saveParam.getUnitType());
|
||||
} else {
|
||||
itemPO.setItemValue(Joiner.on(",").join(saveParam.getItemValue()));
|
||||
itemPO.setItemValue(StringUtils.join(saveParam.getItemValue(),","));
|
||||
itemPO.setCountRule(Objects.nonNull(saveParam.getCountRule()) ? JSON.toJSONString(saveParam.getCountRule()) : "");
|
||||
itemPO.setSumRule(Objects.nonNull(saveParam.getSumRule()) ? JSON.toJSONString(saveParam.getSumRule()) : "");
|
||||
itemPO.setAvgRule(Objects.nonNull(saveParam.getAvgRule()) ? JSON.toJSONString(saveParam.getAvgRule()) : "");
|
||||
|
|
@ -159,16 +145,16 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
|
|||
itemPO.setMedianRule(Objects.nonNull(saveParam.getMedianRule()) ? JSON.toJSONString(saveParam.getMedianRule()) : "");
|
||||
}
|
||||
|
||||
salaryStatisticsItemMapper.updateById(itemPO);
|
||||
salaryStatisticsItemMapper.updateIgnoreNull(itemPO);
|
||||
|
||||
// 记录操作日志
|
||||
LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setTargetId(String.valueOf(itemPO.getId()));
|
||||
loggerContext.setTargetName(itemPO.getItemName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152669, "更新统计项目"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152669, "更新统计项目"));
|
||||
salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
// loggerContext.setTargetId(String.valueOf(itemPO.getId()));
|
||||
// loggerContext.setTargetName(itemPO.getItemName());
|
||||
// loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(152669, "更新统计项目"));
|
||||
// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(152669, "更新统计项目"));
|
||||
// salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
}
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,63 +1,41 @@
|
|||
package com.engine.salary.report.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.report.SalaryStatisticsReportMapper;
|
||||
import com.engine.salary.report.common.constant.SalaryStatisticsDimensionConstant;
|
||||
import com.engine.salary.report.entity.bo.SalaryStatisticsReportBO;
|
||||
import com.engine.salary.report.entity.dto.SalaryStatisticsReportDataDTO;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportSaveParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsSearchConditionSaveParam;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsDimensionPO;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsItemPO;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsReportPO;
|
||||
import com.engine.salary.report.enums.SalaryStatisticsDimensionTypeEnum;
|
||||
import com.engine.salary.report.service.SalaryStatisticsItemService;
|
||||
import com.engine.salary.report.service.SalaryStatisticsReportService;
|
||||
import com.engine.salary.service.SalaryAcctEmployeeService;
|
||||
import com.engine.salary.service.SalaryAcctResultService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.util.SalaryAssert;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.weaver.common.component.table.page.Page;
|
||||
import com.weaver.common.elog.util.LoggerTemplate;
|
||||
import com.weaver.common.hrm.cache.HrmDepartmentComInfo;
|
||||
import com.weaver.common.hrm.domain.employee.HrmStatus;
|
||||
import com.weaver.common.hrm.dto.jobcall.HrmJobCallParam;
|
||||
import com.weaver.common.hrm.entity.BrowserDataDto;
|
||||
import com.weaver.common.hrm.remote.jobcall.HrmJobCallRemoteService;
|
||||
import com.weaver.common.hrm.service.HrmCommonEmployeeService;
|
||||
import com.weaver.common.hrm.service.employee.HrmCommonHrmStatusService;
|
||||
import com.weaver.framework.rpc.annotation.RpcReference;
|
||||
import com.weaver.framework.util.JsonUtil;
|
||||
import com.weaver.salary.report.common.constant.SalaryStatisticsDimensionConstant;
|
||||
import com.weaver.salary.report.entity.dto.SalaryStatisticsReportDataDTO;
|
||||
import com.weaver.salary.report.entity.param.SalaryStatisticsDimensionSaveParam;
|
||||
import com.weaver.salary.report.entity.po.*;
|
||||
import com.weaver.salary.report.enums.EmployeeTypeEnum;
|
||||
import com.weaver.salary.report.enums.IncomeCategoryEnum;
|
||||
import com.weaver.salary.report.enums.SalaryStatisticsDimensionTypeEnum;
|
||||
import com.weaver.salary.report.service.*;
|
||||
import com.weaver.salary.report.util.*;
|
||||
import com.weaver.teams.api.user.Sex;
|
||||
import com.weaver.teams.domain.hr.SimpleUserInfo;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.hrapp.rest.RemoteUserInfoService;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -74,28 +52,28 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
public static final String LAST_INFO = "lastInfoList";
|
||||
public static final String SAME_INFO = "sameInfoList";
|
||||
|
||||
|
||||
|
||||
private SalaryStatisticsReportMapper salaryStatisticsReportMapper;
|
||||
|
||||
|
||||
private SalaryStatisticsItemService salaryStatisticsItemService;
|
||||
|
||||
|
||||
private SalaryAcctEmployeeService salaryAcctEmployeeService;
|
||||
|
||||
|
||||
private SalaryAcctResultService salaryAcctResultValueService;
|
||||
|
||||
|
||||
private TaxAgentService taxAgentService;
|
||||
|
||||
private ExtEmployeeService extEmployeeService;
|
||||
@Autowired
|
||||
private HrmCommonEmployeeService hrmCommonEmployeeService;
|
||||
@RpcReference
|
||||
private HrmJobCallRemoteService hrmJobCallRemoteService;
|
||||
@RpcReference
|
||||
private RemoteUserInfoService remoteUserInfoService;
|
||||
@Autowired
|
||||
private HrmCommonHrmStatusService hrmCommonHrmStatusService;
|
||||
(name = "salaryStatReportLoggerTemplate")
|
||||
private LoggerTemplate salaryStatReportLoggerTemplate;
|
||||
|
||||
// private ExtEmployeeService extEmployeeService;
|
||||
// @Autowired
|
||||
// private HrmCommonEmployeeService hrmCommonEmployeeService;
|
||||
// @RpcReference
|
||||
// private HrmJobCallRemoteService hrmJobCallRemoteService;
|
||||
// @RpcReference
|
||||
// private RemoteUserInfoService remoteUserInfoService;
|
||||
// @Autowired
|
||||
// private HrmCommonHrmStatusService hrmCommonHrmStatusService;
|
||||
// (name = "salaryStatReportLoggerTemplate")
|
||||
// private LoggerTemplate salaryStatReportLoggerTemplate;
|
||||
|
||||
@Override
|
||||
public List<SalaryStatisticsReportPO> listAll() {
|
||||
|
|
@ -104,7 +82,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
|
||||
@Override
|
||||
public List<SalaryStatisticsReportPO> list() {
|
||||
return salaryStatisticsReportMapper.listSome(SalaryStatisticsReportPO.builder().creator((long)user.getUID()).build());
|
||||
return salaryStatisticsReportMapper.listSome(SalaryStatisticsReportPO.builder().creator((long) user.getUID()).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -126,21 +104,21 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
public String save(SalaryStatisticsReportSaveParam saveParam) {
|
||||
SalaryStatisticsReportSaveParam.checkParam(saveParam);
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Date now = new Date();
|
||||
if (saveParam.getId() != null) {
|
||||
SalaryStatisticsReportPO po = this.getById(saveParam.getId());
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 161845, "薪酬统计报表不存在"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
|
||||
}
|
||||
List<SalaryStatisticsReportPO> list = listByName(saveParam.getReportName());
|
||||
List<SalaryStatisticsReportPO> list = listByName(saveParam.getReportName());
|
||||
boolean nameExist = list.stream().anyMatch(e -> !Objects.equals(e.getId(), saveParam.getId()));
|
||||
if (nameExist) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 98080, "名称不允许重复"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98080, "名称不允许重复"));
|
||||
}
|
||||
SalaryStatisticsReportPO poNew = new SalaryStatisticsReportPO();
|
||||
BeanUtils.copyProperties(po, poNew);
|
||||
poNew.setReportName(saveParam.getReportName());
|
||||
poNew.setDimension(Joiner.on(",").join(saveParam.getDimensionIds()));
|
||||
poNew.setDimension(StringUtils.join(saveParam.getDimensionIds(), ","));
|
||||
this.salaryStatisticsReportMapper.updateIgnoreNull(poNew);
|
||||
|
||||
// 记录日志
|
||||
|
|
@ -152,17 +130,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 152565, "更新报表"));
|
||||
// salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
} else {
|
||||
List<SalaryStatisticsReportPO> list = listByName(saveParam.getReportName());
|
||||
List<SalaryStatisticsReportPO> list = listByName(saveParam.getReportName());
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 98080, "名称不允许重复"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98080, "名称不允许重复"));
|
||||
}
|
||||
Long id = IdGenerator.generate();
|
||||
SalaryStatisticsReportPO poNew = SalaryStatisticsReportPO.builder()
|
||||
.id(id)
|
||||
.reportName(saveParam.getReportName())
|
||||
.dimension(Joiner.on(",").join(saveParam.getDimensionIds()))
|
||||
.dimension(StringUtils.join(saveParam.getDimensionIds(), ","))
|
||||
.createTime(now)
|
||||
.creator(user.getUID())
|
||||
.creator((long) user.getUID())
|
||||
.updateTime(now)
|
||||
.deleteType(0)
|
||||
.tenantKey("")
|
||||
|
|
@ -183,46 +161,46 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
|
||||
@Override
|
||||
public String saveSearchCondition(SalaryStatisticsSearchConditionSaveParam param) {
|
||||
SalaryAssert.notNull(param.getId(), SalaryI18nUtil.getI18nLabel(152562, "报表id不能为空"));
|
||||
if (Objects.isNull(param.getSalaryStartMonth()) || Objects.isNull(param.getSalaryEndMonth())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100294, "薪资所属月必传"));
|
||||
}
|
||||
if ((CollectionUtils.isNotEmpty(param.getTaxAgent()) && param.getTaxAgent().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getIncomeCategory()) && param.getIncomeCategory().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getSubCompany()) && param.getSubCompany().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getGrade()) && param.getGrade().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getPosition()) && param.getPosition().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getStatus()) && param.getStatus().size() > 10)
|
||||
|| (CollectionUtils.isNotEmpty(param.getEmployee()) && param.getEmployee().size() > 10)
|
||||
) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182014, "统计数据范围条件数量过多"));
|
||||
}
|
||||
|
||||
SalaryStatisticsReportPO po = getById(param.getId());
|
||||
SalaryAssert.notNull(po, SalaryI18nUtil.getI18nLabel(152563, "报表不存在"));
|
||||
po.setSalaryStartMonth(param.getSalaryStartMonth().atDay(1));
|
||||
po.setSalaryEndMonth(param.getSalaryEndMonth().atDay(1));
|
||||
|
||||
po.setTaxAgentSetting(JSON.toJSONString(param.getTaxAgent()));
|
||||
po.setIncomeCategorySetting(JSON.toJSONString(param.getIncomeCategory()));
|
||||
po.setSubCompanySetting(JSON.toJSONString(param.getSubCompany()));
|
||||
po.setDepartSetting(JSON.toJSONString(param.getDepartment()));
|
||||
po.setGradeSetting(JSON.toJSONString(param.getGrade()));
|
||||
po.setPositionSetting(JSON.toJSONString(param.getPosition()));
|
||||
po.setStatusSetting(JSON.toJSONString(param.getStatus()));
|
||||
po.setEmployeeSetting(JSON.toJSONString(param.getEmployee()));
|
||||
po.setHiredateSetting(JSON.toJSONString(param.getHiredate()));
|
||||
po.setLeavedateSetting(JSON.toJSONString(param.getLeavedate()));
|
||||
salaryStatisticsReportMapper.updateIgnoreNull(po);
|
||||
|
||||
// 获取自定义统计项目
|
||||
List<SalaryStatisticsItemPO> salaryStatisticsItemList = salaryStatisticsItemService.listByStatisticsReportId(po.getId());
|
||||
|
||||
salaryStatisticsItemList.forEach(e -> param.getItems().stream().filter(i -> i.getId().equals(e.getId())).findFirst().ifPresent(salaryStatisticsItem -> {
|
||||
e.setUnitType(salaryStatisticsItem.getUnitType());
|
||||
e.setIndexValue(salaryStatisticsItem.getIndexValue());
|
||||
}));
|
||||
this.salaryStatisticsItemService.saveOrUpdateBatch(salaryStatisticsItemList);
|
||||
// SalaryAssert.notNull(param.getId(), SalaryI18nUtil.getI18nLabel(152562, "报表id不能为空"));
|
||||
// if (Objects.isNull(param.getSalaryStartMonth()) || Objects.isNull(param.getSalaryEndMonth())) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100294, "薪资所属月必传"));
|
||||
// }
|
||||
// if ((CollectionUtils.isNotEmpty(param.getTaxAgent()) && param.getTaxAgent().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getIncomeCategory()) && param.getIncomeCategory().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getSubCompany()) && param.getSubCompany().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getGrade()) && param.getGrade().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getPosition()) && param.getPosition().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getStatus()) && param.getStatus().size() > 10)
|
||||
// || (CollectionUtils.isNotEmpty(param.getEmployee()) && param.getEmployee().size() > 10)
|
||||
// ) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182014, "统计数据范围条件数量过多"));
|
||||
// }
|
||||
//
|
||||
// SalaryStatisticsReportPO po = getById(param.getId());
|
||||
// SalaryAssert.notNull(po, SalaryI18nUtil.getI18nLabel(152563, "报表不存在"));
|
||||
// po.setSalaryStartMonth(param.getSalaryStartMonth().atDay(1));
|
||||
// po.setSalaryEndMonth(param.getSalaryEndMonth().atDay(1));
|
||||
//
|
||||
// po.setTaxAgentSetting(JSON.toJSONString(param.getTaxAgent()));
|
||||
// po.setIncomeCategorySetting(JSON.toJSONString(param.getIncomeCategory()));
|
||||
// po.setSubCompanySetting(JSON.toJSONString(param.getSubCompany()));
|
||||
// po.setDepartSetting(JSON.toJSONString(param.getDepartment()));
|
||||
// po.setGradeSetting(JSON.toJSONString(param.getGrade()));
|
||||
// po.setPositionSetting(JSON.toJSONString(param.getPosition()));
|
||||
// po.setStatusSetting(JSON.toJSONString(param.getStatus()));
|
||||
// po.setEmployeeSetting(JSON.toJSONString(param.getEmployee()));
|
||||
// po.setHiredateSetting(JSON.toJSONString(param.getHiredate()));
|
||||
// po.setLeavedateSetting(JSON.toJSONString(param.getLeavedate()));
|
||||
// salaryStatisticsReportMapper.updateIgnoreNull(po);
|
||||
//
|
||||
// // 获取自定义统计项目
|
||||
// List<SalaryStatisticsItemPO> salaryStatisticsItemList = salaryStatisticsItemService.listByStatisticsReportId(po.getId());
|
||||
//
|
||||
// salaryStatisticsItemList.forEach(e -> param.getItems().stream().filter(i -> i.getId().equals(e.getId())).findFirst().ifPresent(salaryStatisticsItem -> {
|
||||
// e.setUnitType(salaryStatisticsItem.getUnitType());
|
||||
// e.setIndexValue(salaryStatisticsItem.getIndexValue());
|
||||
// }));
|
||||
// this.salaryStatisticsItemService.saveOrUpdateBatch(salaryStatisticsItemList);
|
||||
|
||||
// 记录日志
|
||||
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
|
||||
|
|
@ -238,13 +216,13 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
@Override
|
||||
public Map<String, Object> delete(Collection<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 84026, "参数错误"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||
}
|
||||
int total = ids.size();
|
||||
List<SalaryStatisticsReportPO> list = salaryStatisticsReportMapper.listSome(SalaryStatisticsReportPO.builder().ids(ids).build());
|
||||
|
||||
int success = list.size();
|
||||
if (success>0) {
|
||||
if (success > 0) {
|
||||
List<Long> deleteIds = list.stream().map(SalaryStatisticsReportPO::getId).collect(Collectors.toList());
|
||||
salaryStatisticsReportMapper.deleteByIds(deleteIds);
|
||||
|
||||
|
|
@ -262,12 +240,12 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
}
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>(2);
|
||||
String resultMsg = SalaryI18nUtil.getI18nLabel( 94620, "操作成功");
|
||||
String resultMsg = SalaryI18nUtil.getI18nLabel(94620, "操作成功");
|
||||
String resultType = "success";
|
||||
// 单个设为定薪提示
|
||||
if (total > 1) {
|
||||
resultMsg = SalaryI18nUtil.getI18nLabel( 134807, "成功条数") + ": "+ (success) + "; "
|
||||
+ SalaryI18nUtil.getI18nLabel( 134808, "失败条数") + ": "+ (total - success);
|
||||
resultMsg = SalaryI18nUtil.getI18nLabel(134807, "成功条数") + ": " + (success) + "; "
|
||||
+ SalaryI18nUtil.getI18nLabel(134808, "失败条数") + ": " + (total - success);
|
||||
if ((total - success) > 0) {
|
||||
resultType = "info";
|
||||
}
|
||||
|
|
@ -280,7 +258,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<Map<String, Object>> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportPO po, List<SalaryStatisticsItemPO> salaryStatisticsItemList, Long employeeId, String tenantKey) {
|
||||
public PageInfo<Map<String, Object>> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportPO po, List<SalaryStatisticsItemPO> salaryStatisticsItemList) {
|
||||
Map<String, Boolean> checkMap = SalaryStatisticsReportBO.checkLoad(salaryStatisticsItemList);
|
||||
// 如果一个都没有,直接返回
|
||||
if (!checkMap.get("isNow")) {
|
||||
|
|
@ -290,21 +268,21 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
SalaryStatisticsReportBO.poToQueryParam(param, po);
|
||||
|
||||
// 获取本期报表分权后的核算人员
|
||||
List<SalaryAcctEmployeePO> list = salaryAcctEmployeeService.listBySalaryStatisticsReportParam(param, employeeId, tenantKey);
|
||||
List<SalaryAcctEmployeePO> list = salaryAcctEmployeeService.listBySalaryStatisticsReportParam(param);
|
||||
SalaryStatisticsReportDataQueryParam lastParam = SalaryStatisticsReportBO.lastParamConvert(param, dimension);
|
||||
// 获取上期报表分权后的核算人员
|
||||
List<SalaryAcctEmployeePO> lastList = checkMap.get("isLast") ? salaryAcctEmployeeService.listBySalaryStatisticsReportParam(lastParam, employeeId, tenantKey) : Lists.newArrayList();
|
||||
List<SalaryAcctEmployeePO> lastList = checkMap.get("isLast") ? salaryAcctEmployeeService.listBySalaryStatisticsReportParam(lastParam) : Lists.newArrayList();
|
||||
SalaryStatisticsReportDataQueryParam sameParam = SalaryStatisticsReportBO.sameParamConvert(param);
|
||||
// 获取去年同期报表分权后的核算人员
|
||||
List<SalaryAcctEmployeePO> sameList = checkMap.get("isSame") ? salaryAcctEmployeeService.listBySalaryStatisticsReportParam(sameParam, employeeId, tenantKey) : Lists.newArrayList();
|
||||
List<SalaryAcctEmployeePO> sameList = checkMap.get("isSame") ? salaryAcctEmployeeService.listBySalaryStatisticsReportParam(sameParam) : Lists.newArrayList();
|
||||
|
||||
SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder()
|
||||
.list(list)
|
||||
.lastList(lastList)
|
||||
.sameList(sameList)
|
||||
.salaryStatisticsItemList(salaryStatisticsItemList)
|
||||
.employeeId(employeeId)
|
||||
.tenantKey(tenantKey)
|
||||
.employeeId((long) user.getUID())
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
|
||||
List<SalaryAcctEmployeePO> allList = Lists.newArrayList();
|
||||
|
|
@ -312,14 +290,20 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
allList.addAll(lastList);
|
||||
allList.addAll(sameList);
|
||||
Set<Long> salaryAcctEmployeeIds = allList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toSet());
|
||||
List<SalaryAcctResultValuePO> salaryAcctResultValues = salaryAcctResultValueService.listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds, tenantKey);
|
||||
Map<Long, Map<String, String>> salaryAcctResultValueMap = SalaryEntityUtil.convert2Map(salaryAcctResultValues, SalaryAcctResultValuePO::getSalaryAcctEmployeeId, SalaryAcctResultValuePO::getResultValue);
|
||||
List<SalaryAcctResultPO> salaryAcctResultValues = salaryAcctResultValueService.listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
|
||||
// Map<Long, List<SalaryAcctResultPO>> salaryAcctResultValueMap = SalaryEntityUtil.convert2Map();
|
||||
Map<Long, List<SalaryAcctResultPO>> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId);
|
||||
Map<Long, Map<String,String>> map = new HashMap<>();
|
||||
salaryAcctEmpResultMap.forEach((k, v) -> {
|
||||
Map<String, String> collect = v.stream().collect(Collectors.toMap(p->p.getSalaryItemId().toString(), SalaryAcctResultPO::getResultValue, (key1, key2) -> key2));
|
||||
map.put(k,collect);
|
||||
});
|
||||
|
||||
// 根据统计维度进行计算
|
||||
return calculateReportRecordsByDimension(dimension, param, salaryStatisticsReportData, salaryAcctResultValueMap);
|
||||
return calculateReportRecordsByDimension(dimension, param, salaryStatisticsReportData, map);
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> calculateReportRecordsByDimension(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> calculateReportRecordsByDimension(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
// 定性
|
||||
if (SalaryStatisticsDimensionTypeEnum.QUALITATIVE.getValue().equals(dimension.getDimType())) {
|
||||
switch (dimension.getDimCode()) {
|
||||
|
|
@ -376,17 +360,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
default:
|
||||
return new Page<>();
|
||||
}
|
||||
// 定量-组距式分组
|
||||
// 定量-组距式分组
|
||||
} else if (SalaryStatisticsDimensionTypeEnum.RATION_GROUP_SPACING.getValue().equals(dimension.getDimType())) {
|
||||
return buildRationGroupSpacing4Records(dimension, data, salaryAcctResultValueMap);
|
||||
// 定量-单项式分组
|
||||
// 定量-单项式分组
|
||||
} else if (SalaryStatisticsDimensionTypeEnum.RATION_GROUP_INDIVIDUAL.getValue().equals(dimension.getDimType())) {
|
||||
return buildRationGroupIndividual4Records(dimension, data, salaryAcctResultValueMap);
|
||||
}
|
||||
return new Page<>();
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildSalaryMonthRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildSalaryMonthRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
Map<String, List<SalaryAcctEmployeePO>> listMap = data.getList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getSalaryMonth));
|
||||
|
|
@ -403,7 +387,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildTaxAgentRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildTaxAgentRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -425,7 +409,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildIncomeCategoryRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildIncomeCategoryRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -448,7 +432,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildSubComRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildSubComRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -500,7 +484,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildDepartRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildDepartRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -558,7 +542,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildPositionRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildPositionRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -616,7 +600,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildGradeRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildGradeRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -674,7 +658,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildStatusRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildStatusRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -731,7 +715,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildTypeRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildTypeRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
|
|
@ -750,7 +734,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildEmployeeRecords(SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildEmployeeRecords(SalaryStatisticsReportDataQueryParam param, SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
List<Long> employeeIds = data.getList().stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList());
|
||||
Page<Map<String, Object>> result = new Page<>(param.getCurrent(), param.getPageSize(), employeeIds.size(), true);
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
|
@ -776,12 +760,12 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildQuarterRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildQuarterRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
Set<String> quarterSet = Sets.newHashSet();
|
||||
data.getList().forEach(sa ->quarterSet.add(ReportTimeUtil.getQuarter(sa.getSalaryMonth())));
|
||||
data.getList().forEach(sa -> quarterSet.add(ReportTimeUtil.getQuarter(sa.getSalaryMonth())));
|
||||
List<String> quarters = Lists.newArrayList(quarterSet).stream().sorted().collect(Collectors.toList());
|
||||
Collections.reverse(quarters);
|
||||
|
||||
|
|
@ -799,12 +783,12 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildHalfYearRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
private PageInfo<Map<String, Object>> buildHalfYearRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
||||
Set<String> halfYearSet = Sets.newHashSet();
|
||||
data.getList().forEach(sa ->halfYearSet.add(ReportTimeUtil.getHalfYear(sa.getSalaryMonth())));
|
||||
data.getList().forEach(sa -> halfYearSet.add(ReportTimeUtil.getHalfYear(sa.getSalaryMonth())));
|
||||
List<String> halfYears = Lists.newArrayList(halfYearSet).stream().sorted().collect(Collectors.toList());
|
||||
Collections.reverse(halfYears);
|
||||
|
||||
|
|
@ -1391,6 +1375,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
result.setRecords(records);
|
||||
return result;
|
||||
}
|
||||
|
||||
private Page<Map<String, Object>> buildAgeRecords(SalaryStatisticsReportDataDTO data, Map<Long, Map<String, String>> salaryAcctResultValueMap) {
|
||||
Page<Map<String, Object>> result = new Page<>();
|
||||
List<Map<String, Object>> records = new ArrayList<>();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,186 @@
|
|||
package com.engine.salary.report.service.impl;
|
||||
|
||||
import com.engine.salary.report.service.SubTableExportService;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: zhangheng
|
||||
* @CreateDate: 2022/11/9
|
||||
* @Version: v1.0
|
||||
*/
|
||||
public class SubTableExportServiceImpl implements SubTableExportService {
|
||||
|
||||
// private Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
//
|
||||
// @Autowired
|
||||
// private SalaryBatchService salaryBatchService;
|
||||
//
|
||||
// @Override
|
||||
// public Map<String, String> exportCommon(ExportCommonParam param, User currentUser, String tenantKey) {
|
||||
// Map<String, String> map = new HashMap<>(3);
|
||||
// map.put("biz", String.valueOf(IdGenerator.generate()));
|
||||
// map.put("module", EntityType.hrsa.name());
|
||||
// map.put("function", "welfareCommonExcel");
|
||||
// String eteamsId = TenantRpcContext.getEteamsId();
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// try {
|
||||
// DSTenantKeyThreadVar.tenantKey.set(tenantKey);
|
||||
// exportTask(param, map, eteamsId, currentUser.getUsername(), currentUser.getEmployeeId(), tenantKey);
|
||||
// } finally {
|
||||
// DSTenantKeyThreadVar.tenantKey.remove();
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.execute(localRunnable);
|
||||
// return map;
|
||||
// }
|
||||
//
|
||||
// public Map<String, Object> exportTask(ExportCommonParam param, Map<String, String> exportMap, String eteamsId, String operateName, Long employeeId, String tenantKey) {
|
||||
// List<ExcelSheetData> sheetList = new LinkedList<>();
|
||||
// // 工作簿
|
||||
// ExcelSheetData excelSheetData = new ExcelSheetData();
|
||||
// // 工作簿名称
|
||||
// excelSheetData.setSheetName(param.getSheetName());
|
||||
// // 报表头
|
||||
// excelSheetData.setHeaders(buildHeader(param.getColumns(), new ArrayList<>(), param.getDimensionName()));
|
||||
// // 报表数据
|
||||
// excelSheetData.setRows(buildCommonData(param));
|
||||
// // 报表表头合并
|
||||
// excelSheetData.setMergedRegions(buildMergedRegions(param.getColumns()));
|
||||
// // 塞进工作簿list
|
||||
// sheetList.add(excelSheetData);
|
||||
// // 发送
|
||||
// Map<String, Object> map = salaryBatchService.simpleExportExcel(ExportExcelInfo.builder()
|
||||
// .bizId(exportMap.get("biz"))
|
||||
// .sharePassword(param.getSharePassword())
|
||||
// .flag(true)
|
||||
// .module(exportMap.get("module"))
|
||||
// .userId(employeeId)
|
||||
// .eteamsId(eteamsId)
|
||||
// .tenantKey(tenantKey)
|
||||
// .operator(operateName)
|
||||
// .fileName(param.getSheetName() + ReportTimeUtil.getFormatLocalDateTime(LocalDateTime.now()))
|
||||
// .handlerName("welfareCommonExcelExportHandler")
|
||||
// .dataType(param.getSheetName())
|
||||
// .function("welfareCommonExcel").build(), sheetList);
|
||||
// return map;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @BatchExportHandler("welfareCommonExcelExportHandler")
|
||||
// public void welfareCommonExcelExportHandler() {
|
||||
// BatchCallbackMessage message = BatchExportContext.getBatchCallbackMessage();
|
||||
// logger.info(SalaryI18nUtil.getI18nLabel(100292, "接受到导出的结果") + JSONObject.toJSONString(message));
|
||||
// }
|
||||
//
|
||||
// public int getHigh(ExportColumn column) {
|
||||
// int tempHign = 1;
|
||||
// if (column.getChildren() != null) {
|
||||
// tempHign++;
|
||||
// List<ExportColumn> children = column.getChildren();
|
||||
// for (ExportColumn exportColumn : children) {
|
||||
// getHigh(exportColumn);
|
||||
// }
|
||||
// }
|
||||
// return tempHign;
|
||||
// }
|
||||
//
|
||||
// public List<Integer[]> buildMergedRegions(List<ExportColumn> columns) {
|
||||
// List<Integer[]> merges = new ArrayList<>();
|
||||
// if (CollectionUtils.isEmpty(columns)) {
|
||||
// return merges;
|
||||
// }
|
||||
// int start = 0;
|
||||
// int high = 0;
|
||||
// for (int i = 0; i < columns.size(); i++) {
|
||||
// int columnHigh = getHigh(columns.get(i));
|
||||
// high = Math.max(high, columnHigh);
|
||||
// }
|
||||
// if (high == 1) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// for (int i = 0; i < columns.size(); i++) {
|
||||
// if (columns.get(i).getChildren() == null) {
|
||||
// merges.add(new Integer[]{start, 1, 0, 0});
|
||||
// start++;
|
||||
// } else if (columns.get(i).getChildren().size() == 1) {
|
||||
// start++;
|
||||
// } else {
|
||||
// int end = start + columns.get(i).getChildren().size() - 1;
|
||||
// merges.add(new Integer[]{0, 0, start, end});
|
||||
// end++;
|
||||
// start = end;
|
||||
// }
|
||||
// }
|
||||
// return merges;
|
||||
// }
|
||||
//
|
||||
// public List<List<Object>> buildCommonData(ExportCommonParam param) {
|
||||
// List<String> keyIndexOrder = new ArrayList<>();
|
||||
// buildCommonKeyIndex(param.getColumns(), keyIndexOrder);
|
||||
// List<List<Object>> result = new ArrayList<>();
|
||||
// param.getData().forEach(dataMap -> {
|
||||
// List<Object> temp = new ArrayList<>();
|
||||
// keyIndexOrder.forEach(key -> {
|
||||
// temp.add(dataMap.get(key));
|
||||
// });
|
||||
// result.add(temp);
|
||||
// });
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// public void buildCommonKeyIndex(List<ExportColumn> list, List<String> keyIndexOrder) {
|
||||
// List<ExportColumn> children = new ArrayList<>();
|
||||
// if (CollectionUtils.isEmpty(list)) {
|
||||
// return;
|
||||
// }
|
||||
// list.forEach(column -> {
|
||||
// if (column.getChildren() == null) {
|
||||
// keyIndexOrder.add(column.getKeyIndex());
|
||||
// } else {
|
||||
// children.addAll(column.getChildren());
|
||||
// }
|
||||
// });
|
||||
// buildCommonKeyIndex(children, keyIndexOrder);
|
||||
// }
|
||||
//
|
||||
// public List<String[]> buildHeader(List<ExportColumn> list, List<String[]> result, String dimensionName) {
|
||||
// List<String[]> headers = buildCommonHeader(list, result);
|
||||
// int size = headers.size();
|
||||
// List<String> header = new ArrayList<>(Arrays.asList(headers.get(size - 1)));
|
||||
// header.add(0, dimensionName);
|
||||
// result.set(size - 1, header.toArray(new String[0]));
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 多层级表头
|
||||
// *
|
||||
// * @param list
|
||||
// * @param result
|
||||
// * @return
|
||||
// */
|
||||
// public List<String[]> buildCommonHeader(List<ExportColumn> list, List<String[]> result) {
|
||||
// List<ExportColumn> childList = new ArrayList<>();
|
||||
// if (CollectionUtils.isEmpty(list)) {
|
||||
// return result;
|
||||
// }
|
||||
// List<String> temp = new ArrayList<>();
|
||||
// list.forEach(column -> {
|
||||
// if (column.getChildren() != null) {
|
||||
// childList.addAll(column.getChildren());
|
||||
// column.getChildren().forEach(x -> temp.add(column.getValue()));
|
||||
// } else {
|
||||
// temp.add(column.getValue());
|
||||
// }
|
||||
// });
|
||||
// result.add(temp.toArray(new String[0]));
|
||||
// if (CollectionUtils.isNotEmpty(childList)) {
|
||||
// buildCommonHeader(childList, result);
|
||||
// }
|
||||
// return result;
|
||||
// }
|
||||
}
|
||||
|
|
@ -1,18 +1,21 @@
|
|||
package com.engine.salary.report.web;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportQueryParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportSaveParam;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsReportPO;
|
||||
import com.engine.salary.report.wrapper.SalaryStatisticsReportWrapper;
|
||||
import com.weaver.common.authority.annotation.WeaPermission;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.common.component.form.WeaForm;
|
||||
import com.weaver.common.component.search.WeaSearchCondition;
|
||||
import com.weaver.salary.report.entity.param.*;
|
||||
import com.weaver.teams.security.context.TenantContext;
|
||||
import com.weaver.teams.security.context.UserContext;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import com.engine.salary.util.ResponseResult;
|
||||
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -22,24 +25,24 @@ import java.util.Map;
|
|||
* @Author: wangxiangzhong
|
||||
* @Date: 2022/12/15 11:40
|
||||
*/
|
||||
@Api("薪酬统计报表")
|
||||
@RestController
|
||||
@RequestMapping("/api/bs/salaryreport/salary/statistics/report")
|
||||
public class SalaryStatisticsReportController {
|
||||
|
||||
@Autowired
|
||||
private SalaryStatisticsReportWrapper salaryStatisticsReportWrapper;
|
||||
private SalaryStatisticsReportWrapper getSalaryStatisticsReportWrapper(User user) {
|
||||
return ServiceUtil.getService(SalaryStatisticsReportWrapper.class, user);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 薪酬统计报表列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
@ApiOperation("薪酬统计报表列表")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<List<Map<String, Object>>> list(@RequestBody SalaryStatisticsReportQueryParam queryParam) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.list(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
@POST
|
||||
@Path("/list")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportQueryParam queryParam) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryStatisticsReportQueryParam, List<Map<String, Object>>>(user).run(getSalaryStatisticsReportWrapper(user)::list, queryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -47,24 +50,26 @@ public class SalaryStatisticsReportController {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getForm")
|
||||
@ApiOperation("获取薪酬统计报表表单")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<WeaForm> getFrom(@RequestParam(value = "id", required = false) Long id) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.getFrom(id, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
@GET
|
||||
@Path("/getForm")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, SalaryStatisticsReportPO>(user).run(getSalaryStatisticsReportWrapper(user)::getFrom, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存薪酬统计报表
|
||||
*
|
||||
* @param saveParam
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
@ApiOperation("保存薪酬统计报表")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<String> save(@RequestBody SalaryStatisticsReportSaveParam saveParam) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.save(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
@POST
|
||||
@Path("/save")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryStatisticsReportSaveParam, String>(user).run(getSalaryStatisticsReportWrapper(user)::save, param);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -73,38 +78,34 @@ public class SalaryStatisticsReportController {
|
|||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
@ApiOperation("删除薪酬统计报表")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<Map<String, Object>> delete(@RequestBody Collection<Long> ids) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.delete(ids, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
@POST
|
||||
@Path("/delete")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection<Long> ids) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Collection<Long>, Map<String, Object>>(user).run(getSalaryStatisticsReportWrapper(user)::delete, ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取薪酬统计报表查询条件
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getSearchCondition")
|
||||
@ApiOperation("获取薪酬统计报表查询条件")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<WeaSearchCondition> getSearchCondition(@RequestParam Long id) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.getSearchCondition(id, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存薪酬统计报表查询条件
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/saveSearchCondition")
|
||||
@ApiOperation("保存薪酬统计报表查询条件")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<String> saveSearchCondition(@RequestBody SalaryStatisticsSearchConditionSaveParam param) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.saveSearchCondition(param, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
}
|
||||
// @GetMapping("/getSearchCondition")
|
||||
// @ApiOperation("获取薪酬统计报表查询条件")
|
||||
// @WeaPermission(publicPermission = true)
|
||||
// public WeaResult<WeaSearchCondition> getSearchCondition(@RequestParam Long id) {
|
||||
// return WeaResult.success(salaryStatisticsReportWrapper.getSearchCondition(id, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * 保存薪酬统计报表查询条件
|
||||
// *
|
||||
// * @param param
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/saveSearchCondition")
|
||||
// @ApiOperation("保存薪酬统计报表查询条件")
|
||||
// @WeaPermission(publicPermission = true)
|
||||
// public WeaResult<String> saveSearchCondition(@RequestBody SalaryStatisticsSearchConditionSaveParam param) {
|
||||
// return WeaResult.success(salaryStatisticsReportWrapper.saveSearchCondition(param, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取薪酬统计报表数据
|
||||
|
|
@ -112,23 +113,23 @@ public class SalaryStatisticsReportController {
|
|||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/getData")
|
||||
@ApiOperation("获取薪酬统计报表数据")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<Map<String, Object>> getData(@RequestBody SalaryStatisticsReportDataQueryParam param) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.getData(param, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
@POST
|
||||
@Path("/getData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportDataQueryParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryStatisticsReportDataQueryParam, Map<String, Object>>(user).run(getSalaryStatisticsReportWrapper(user)::getData, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出报表数据
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/exportData")
|
||||
@ApiOperation("导出报表数据")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public WeaResult<Map<String, String>> exportData(@RequestBody SalaryStatisticsReportDataQueryParam param) {
|
||||
return WeaResult.success(salaryStatisticsReportWrapper.exportData(param, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
}
|
||||
// /**
|
||||
// * 导出报表数据
|
||||
// *
|
||||
// * @param param
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/exportData")
|
||||
// @ApiOperation("导出报表数据")
|
||||
// @WeaPermission(publicPermission = true)
|
||||
// public WeaResult<Map<String, String>> exportData(@RequestBody SalaryStatisticsReportDataQueryParam param) {
|
||||
// return WeaResult.success(salaryStatisticsReportWrapper.exportData(param, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,44 +1,28 @@
|
|||
package com.engine.salary.report.wrapper;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.report.entity.bo.SalaryStatisticsReportBO;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportQueryParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsReportSaveParam;
|
||||
import com.engine.salary.report.entity.param.SalaryStatisticsSearchConditionSaveParam;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsDimensionPO;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsItemPO;
|
||||
import com.engine.salary.report.entity.po.SalaryStatisticsReportPO;
|
||||
import com.engine.salary.report.service.SalaryStatisticsDimensionService;
|
||||
import com.engine.salary.report.service.SalaryStatisticsItemService;
|
||||
import com.engine.salary.report.service.SalaryStatisticsReportService;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.engine.salary.report.service.SubTableExportService;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.weaver.common.authority.format.FormatManager;
|
||||
import com.weaver.common.component.browser.entity.WeaBrowserBean;
|
||||
import com.weaver.common.component.form.WeaForm;
|
||||
import com.weaver.common.component.form.item.WeaFormItem;
|
||||
import com.weaver.common.component.form.item.WeaFormOption;
|
||||
import com.weaver.common.component.search.WeaSearchCondition;
|
||||
import com.weaver.common.component.search.item.WeaSearchConditionItem;
|
||||
import com.weaver.common.component.search.item.WeaSearchConditionItemType;
|
||||
import com.weaver.common.component.search.layout.WeaSearchConditionLayout;
|
||||
import com.weaver.common.component.table.WeaTable;
|
||||
import com.weaver.common.component.table.column.WeaTableColumn;
|
||||
import com.weaver.common.component.table.page.Page;
|
||||
import com.weaver.framework.util.JsonUtil;
|
||||
import com.weaver.salary.report.common.constant.SalaryReportModule;
|
||||
import com.weaver.salary.report.entity.bo.SalaryStatisticsReportBO;
|
||||
import com.weaver.salary.report.entity.dto.SalaryStatisticsReportFormDTO;
|
||||
import com.weaver.salary.report.entity.param.*;
|
||||
import com.weaver.salary.report.entity.po.SalaryStatisticsDimensionPO;
|
||||
import com.weaver.salary.report.entity.po.SalaryStatisticsItemPO;
|
||||
import com.weaver.salary.report.entity.po.SalaryStatisticsReportPO;
|
||||
import com.weaver.salary.report.enums.WeaBrowserTypeEnum;
|
||||
import com.weaver.salary.report.exception.SalaryRunTimeException;
|
||||
import com.weaver.salary.report.service.SalaryStatisticsDimensionService;
|
||||
import com.weaver.salary.report.service.SalaryStatisticsItemService;
|
||||
import com.weaver.salary.report.service.SubTableExportService;
|
||||
import com.weaver.salary.report.util.*;
|
||||
import com.weaver.teams.security.context.TenantContext;
|
||||
import com.weaver.teams.security.context.UserContext;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -48,37 +32,34 @@ import java.util.stream.Collectors;
|
|||
* @Date: 2022/12/15 13:46
|
||||
*/
|
||||
@Component
|
||||
public class SalaryStatisticsReportWrapper {
|
||||
public class SalaryStatisticsReportWrapper extends Service {
|
||||
|
||||
private static final String conditionId = "salaryStatisticsReportSearchCondition";
|
||||
|
||||
|
||||
|
||||
private SalaryStatisticsReportService salaryStatisticsReportService;
|
||||
|
||||
|
||||
private SalaryStatisticsItemService salaryStatisticsItemService;
|
||||
|
||||
|
||||
private SalaryStatisticsDimensionService salaryStatisticsDimensionService;
|
||||
@Autowired
|
||||
|
||||
private SubTableExportService subTableExportService;
|
||||
|
||||
/**
|
||||
* 报表列表
|
||||
*
|
||||
*
|
||||
* @param queryParam
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String, Object>> list(SalaryStatisticsReportQueryParam queryParam, Long currentEmployeeId, String currentTenantKey) {
|
||||
public List<Map<String, Object>> list(SalaryStatisticsReportQueryParam queryParam) {
|
||||
// 初始化
|
||||
salaryStatisticsDimensionService.init(currentEmployeeId, currentTenantKey);
|
||||
salaryStatisticsDimensionService.init((long)user.getUID());
|
||||
|
||||
List<SalaryStatisticsReportPO> reportList = salaryStatisticsReportService.list(currentEmployeeId, currentTenantKey);
|
||||
List<SalaryStatisticsReportPO> reportList = salaryStatisticsReportService.list();
|
||||
if (StringUtils.isNotEmpty(queryParam.getReportName())) {
|
||||
reportList = reportList.stream().filter(rp -> rp.getReportName().contains(queryParam.getReportName())).collect(Collectors.toList());
|
||||
}
|
||||
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensionList = this.salaryStatisticsDimensionService.listAll(currentTenantKey);
|
||||
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensionList = this.salaryStatisticsDimensionService.listAll();
|
||||
Map<String, String> salaryStatisticsDimensionMap = SalaryEntityUtil.convert2Map(salaryStatisticsDimensionList, k -> k.getId().toString(), SalaryStatisticsDimensionPO::getDimName);
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
reportList.forEach(po -> {
|
||||
|
|
@ -86,8 +67,8 @@ public class SalaryStatisticsReportWrapper {
|
|||
temp.put("id", po.getId().toString());
|
||||
temp.put("reportName", po.getReportName());
|
||||
|
||||
List<String> dimNames = Arrays.stream(po.getDimension().split(",")).map(dim -> Optional.ofNullable(salaryStatisticsDimensionMap.get(dim)).orElse("")).collect(Collectors.toList());
|
||||
temp.put("dimension", Joiner.on(",").join(dimNames));
|
||||
List<String> dimNames = Arrays.stream(po.getDimension().split(",")).map(dim -> Optional.ofNullable(salaryStatisticsDimensionMap.get(dim)).orElse("")).collect(Collectors.toList());
|
||||
temp.put("dimension", StringUtils.join(dimNames, ","));
|
||||
temp.put("dimensionId", po.getDimension());
|
||||
result.add(temp);
|
||||
});
|
||||
|
|
@ -98,246 +79,86 @@ public class SalaryStatisticsReportWrapper {
|
|||
* 获取薪酬统计报表表单
|
||||
*
|
||||
* @param id
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
public WeaForm getFrom(Long id, Long currentEmployeeId, String currentTenantKey) {
|
||||
public SalaryStatisticsReportPO getFrom(Long id) {
|
||||
|
||||
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensions = salaryStatisticsDimensionService.listAll(currentTenantKey);
|
||||
List<WeaFormOption> statsDimOptions = salaryStatisticsDimensions.stream().map(sd -> new WeaFormOption(sd.getId().toString(), sd.getDimName())).collect(Collectors.toList());
|
||||
// 1.构建基础信息表单
|
||||
WeaForm weaForm = FormatManager.<SalaryStatisticsReportFormDTO>getInstance().genForm(SalaryStatisticsReportFormDTO.class, SalaryStatisticsReportFormDTO.builder().statsDimOptions(statsDimOptions).build());
|
||||
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensions = salaryStatisticsDimensionService.listAll();
|
||||
|
||||
String placeholder = SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85987, "请输入");
|
||||
String placeholder = SalaryI18nUtil.getI18nLabel(85987, "请输入");
|
||||
|
||||
WeaFormItem nameItem = weaForm.getItems().get("reportName");
|
||||
Map<String, Object> otherParams = Maps.newHashMap();
|
||||
otherParams.put("showCount", true);
|
||||
otherParams.put("placeholder", placeholder);
|
||||
nameItem.setOtherParams(otherParams);
|
||||
weaForm.getItems().put("reportName", nameItem);
|
||||
|
||||
if (id != null) {
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(id, currentTenantKey);
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 161845, "薪酬统计报表不存在"));
|
||||
}
|
||||
Map<String, Object> dataMap = JsonUtil.parseMap(po, Object.class);
|
||||
dataMap.put("dimension", Arrays.asList(po.getDimension().split(",")));
|
||||
weaForm.setData(dataMap);
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(id);
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
|
||||
}
|
||||
return weaForm;
|
||||
return po;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存薪酬统计报表
|
||||
*
|
||||
* @param saveParam
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
public String save(SalaryStatisticsReportSaveParam saveParam, Long currentEmployeeId, String currentTenantKey) {
|
||||
return salaryStatisticsReportService.save(saveParam, currentEmployeeId, currentTenantKey);
|
||||
public String save(SalaryStatisticsReportSaveParam saveParam) {
|
||||
return salaryStatisticsReportService.save(saveParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除薪酬统计报表
|
||||
*
|
||||
* @param ids
|
||||
* @param currentEmployeeId
|
||||
* @param currentTenantKey
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> delete(Collection<Long> ids, Long currentEmployeeId, String currentTenantKey) {
|
||||
return salaryStatisticsReportService.delete(ids, currentEmployeeId, currentTenantKey);
|
||||
public Map<String, Object> delete(Collection<Long> ids) {
|
||||
return salaryStatisticsReportService.delete(ids);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取统计条件
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaSearchCondition getSearchCondition(Long id, Long employeeId, String tenantKey) {
|
||||
// 高级搜索实例
|
||||
WeaSearchCondition weaSearchCondition = new WeaSearchCondition(conditionId);
|
||||
|
||||
if (id != null) {
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(id, tenantKey);
|
||||
SalaryAssert.notNull(po, SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 152563, "报表不存在"));
|
||||
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("salaryStartMonth", ReportTimeUtil.getFormatYearMonth(po.getSalaryStartMonth()));
|
||||
data.put("salaryEndMonth", ReportTimeUtil.getFormatYearMonth(po.getSalaryEndMonth()));
|
||||
data.put("taxAgent", JSONArray.parseArray(po.getTaxAgentSetting()));
|
||||
data.put("incomeCategory", JSONArray.parseArray(po.getIncomeCategorySetting()));
|
||||
data.put("subCompany", JSONArray.parseArray(po.getSubCompanySetting()));
|
||||
data.put("department", JSONArray.parseArray(po.getDepartSetting()));
|
||||
data.put("grade", JSONArray.parseArray(po.getGradeSetting()));
|
||||
data.put("position", JSONArray.parseArray(po.getPositionSetting()));
|
||||
data.put("status", JSONArray.parseArray(po.getStatusSetting()));
|
||||
data.put("employee", JSONArray.parseArray(po.getEmployeeSetting()));
|
||||
data.put("hiredate", JSONArray.parseArray(po.getHiredateSetting()));
|
||||
// data.put("leavedate", JSONArray.parseArray(po.getLeavedateSetting()));
|
||||
|
||||
weaSearchCondition.setData(data);
|
||||
}
|
||||
|
||||
// 搜索项目
|
||||
// 个税扣缴义务人
|
||||
WeaSearchConditionItem taxAgent = new WeaSearchConditionItem();
|
||||
taxAgent.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean paymentOrgBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, WeaBrowserTypeEnum.TAX_AGENT.getBrowserType(), Boolean.TRUE);
|
||||
taxAgent.setBrowserBean(paymentOrgBrowserBean);
|
||||
weaSearchCondition.getItems().put("taxAgent", taxAgent);
|
||||
// 收入所得项目
|
||||
WeaSearchConditionItem incomeCategory = new WeaSearchConditionItem();
|
||||
incomeCategory.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean incomeCategoryBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, WeaBrowserTypeEnum.INCOME_CATEGORY.getBrowserType(), Boolean.TRUE);
|
||||
incomeCategory.setBrowserBean(incomeCategoryBrowserBean);
|
||||
weaSearchCondition.getItems().put("incomeCategory", incomeCategory);
|
||||
// 分部
|
||||
WeaSearchConditionItem subCompany = new WeaSearchConditionItem();
|
||||
subCompany.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean subcompanyBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, "subcompany", Boolean.TRUE);
|
||||
subCompany.setBrowserBean(subcompanyBrowserBean);
|
||||
weaSearchCondition.getItems().put("subCompany", subCompany);
|
||||
// 部门
|
||||
WeaSearchConditionItem department = new WeaSearchConditionItem();
|
||||
department.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean departmentBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, "department", Boolean.TRUE);
|
||||
department.setBrowserBean(departmentBrowserBean);
|
||||
weaSearchCondition.getItems().put("department", department);
|
||||
// 职级
|
||||
WeaSearchConditionItem grade = new WeaSearchConditionItem();
|
||||
grade.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean gradeBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, "grade", Boolean.TRUE);
|
||||
grade.setBrowserBean(gradeBrowserBean);
|
||||
weaSearchCondition.getItems().put("grade", grade);
|
||||
// 岗位
|
||||
WeaSearchConditionItem position = new WeaSearchConditionItem();
|
||||
position.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean positionBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, "position", Boolean.TRUE);
|
||||
position.setBrowserBean(positionBrowserBean);
|
||||
weaSearchCondition.getItems().put("position", position);
|
||||
// 人事状态
|
||||
WeaSearchConditionItem status = new WeaSearchConditionItem();
|
||||
status.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean statusBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, WeaBrowserTypeEnum.USER_STATUS.getBrowserType(), Boolean.TRUE);
|
||||
status.setBrowserBean(statusBrowserBean);
|
||||
weaSearchCondition.getItems().put("status", status);
|
||||
// 人员
|
||||
WeaSearchConditionItem employee = new WeaSearchConditionItem();
|
||||
employee.setItemType(WeaSearchConditionItemType.BROWSER);
|
||||
WeaBrowserBean employeeBrowserBean = new WeaBrowserBean(SalaryReportModule.BROWSER_MODULE, "resource", Boolean.TRUE);
|
||||
employee.setBrowserBean(employeeBrowserBean);
|
||||
weaSearchCondition.getItems().put("employee", employee);
|
||||
|
||||
Map<String, Object> otherParams = Maps.newHashMap();
|
||||
otherParams.put("isRange", true);
|
||||
otherParams.put("type", "day");
|
||||
otherParams.put("startPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90648, "开始日期"));
|
||||
otherParams.put("endPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90649, "结束日期"));
|
||||
// 在otherParams中添加 showMultiBtnGroup showUnlimit 这两个字段 并且都为false
|
||||
// 入职日期
|
||||
WeaSearchConditionItem hiredate = new WeaSearchConditionItem();
|
||||
hiredate.setItemType(WeaSearchConditionItemType.DATEPICKER);
|
||||
hiredate.setOtherParams(otherParams);
|
||||
weaSearchCondition.getItems().put("hiredate", hiredate);
|
||||
// 离职日期
|
||||
WeaSearchConditionItem leavedate = new WeaSearchConditionItem();
|
||||
leavedate.setItemType(WeaSearchConditionItemType.INPUT);
|
||||
leavedate.setReadOnly(true);
|
||||
// leavedate.setItemType(WeaSearchConditionItemType.DATEPICKER);
|
||||
// leavedate.setOtherParams(otherParams);
|
||||
weaSearchCondition.getItems().put("leavedate", leavedate);
|
||||
|
||||
//layout布局
|
||||
List<WeaSearchConditionLayout> firstLine = new ArrayList<>();
|
||||
firstLine.add(new WeaSearchConditionLayout("taxAgent", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人"), new String[]{"taxAgent"}));
|
||||
firstLine.add(new WeaSearchConditionLayout("incomeCategory", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 121908, "收入所得项目"), new String[]{"incomeCategory"}));
|
||||
List<WeaSearchConditionLayout> secondLine = new ArrayList<>();
|
||||
secondLine.add(new WeaSearchConditionLayout("subCompany", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 107369, "分部"), new String[]{"subCompany"}));
|
||||
secondLine.add(new WeaSearchConditionLayout("department", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86185, "部门"), new String[]{"department"}));
|
||||
List<WeaSearchConditionLayout> thirdLine = new ArrayList<>();
|
||||
thirdLine.add(new WeaSearchConditionLayout("grade", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 98623, "职级"), new String[]{"grade"}));
|
||||
thirdLine.add(new WeaSearchConditionLayout("position", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90633, "岗位"), new String[]{"position"}));
|
||||
List<WeaSearchConditionLayout> forthLine = new ArrayList<>();
|
||||
forthLine.add(new WeaSearchConditionLayout("status", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 109332, "人事状态"), new String[]{"status"}));
|
||||
forthLine.add(new WeaSearchConditionLayout("employee", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100133, "人员"), new String[]{"employee"}));
|
||||
List<WeaSearchConditionLayout> fifthLine = new ArrayList<>();
|
||||
fifthLine.add(new WeaSearchConditionLayout("hiredate", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86319, "入职日期"), new String[]{"hiredate"}));
|
||||
// fifthLine.add(new WeaSearchConditionLayout("leavedate", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 95228, "离职日期"), new String[]{"leavedate"}));
|
||||
fifthLine.add(new WeaSearchConditionLayout("leavedate", " ", new String[]{"leavedate"}));
|
||||
|
||||
weaSearchCondition.getLayout().add(firstLine);
|
||||
weaSearchCondition.getLayout().add(secondLine);
|
||||
weaSearchCondition.getLayout().add(thirdLine);
|
||||
weaSearchCondition.getLayout().add(forthLine);
|
||||
weaSearchCondition.getLayout().add(fifthLine);
|
||||
return weaSearchCondition;
|
||||
}
|
||||
|
||||
public String saveSearchCondition(SalaryStatisticsSearchConditionSaveParam param, Long currentEmployeeId, String currentTenantKey) {
|
||||
return this.salaryStatisticsReportService.saveSearchCondition(param, currentEmployeeId, currentTenantKey);
|
||||
public String saveSearchCondition(SalaryStatisticsSearchConditionSaveParam param) {
|
||||
return this.salaryStatisticsReportService.saveSearchCondition(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取报表数据
|
||||
*
|
||||
* @param param
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> getData(SalaryStatisticsReportDataQueryParam param, Long employeeId, String tenantKey) {
|
||||
public Map<String, Object> getData(SalaryStatisticsReportDataQueryParam param) {
|
||||
|
||||
if (param.getId() == null || param.getDimensionId() == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||
}
|
||||
SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId(), tenantKey);
|
||||
SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId());
|
||||
if (dimension == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 161300, "统计维度不存在"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161300, "统计维度不存在"));
|
||||
}
|
||||
// weaTable对象
|
||||
WeaTable<Map<String, Object>> weaTable = new WeaTable<>();
|
||||
Map<String, Object> weaTable= new HashMap<>();
|
||||
// 查询报表配置
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId(), tenantKey);
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId());
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 161845, "薪酬统计报表不存在"));
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
|
||||
}
|
||||
// 查询自定义统计项目
|
||||
List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId(), employeeId, tenantKey);
|
||||
List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId());
|
||||
// 列表data
|
||||
Page<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList, employeeId, tenantKey);
|
||||
PageInfo<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList);
|
||||
|
||||
// 组装合计
|
||||
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, employeeId, tenantKey);
|
||||
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList,(long)user.getUID());
|
||||
|
||||
// 人员维度分页
|
||||
if (Objects.equal(dimension.getDimCode(), "employee")) {
|
||||
if (CollectionUtils.isNotEmpty(page.getRecords())) {
|
||||
page.setRecords(SalaryPageUtil.subList((int) page.getCurrent(), (int) page.getSize(), page.getRecords()));
|
||||
weaTable.setCurrent(page.getCurrent());
|
||||
weaTable.setTotal(page.getTotal());
|
||||
weaTable.setPageSize(page.getSize());
|
||||
}
|
||||
}
|
||||
|
||||
weaTable.setData(page.getRecords());
|
||||
weaTable.setModule(SalaryReportModule.BROWSER_MODULE);
|
||||
// 列表columns
|
||||
List<WeaTableColumn> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList, employeeId, tenantKey);
|
||||
weaTable.setColumns(weaTableColumns);
|
||||
// pageuid
|
||||
weaTable.setPageUid("salaryStatisticsReportDataPage");
|
||||
List<WeaTableColumn> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList);
|
||||
|
||||
Map<String, Object> resultMap = Maps.newHashMap();
|
||||
resultMap.putAll(JsonUtil.parseMap(weaTable, Object.class));
|
||||
resultMap.put("columns", weaTableColumns);
|
||||
resultMap.put("pageInfo", page);
|
||||
resultMap.put("countResult", countResultMap);
|
||||
return resultMap;
|
||||
}
|
||||
|
|
@ -351,36 +172,37 @@ public class SalaryStatisticsReportWrapper {
|
|||
* @return
|
||||
*/
|
||||
public Map<String, String> exportData(SalaryStatisticsReportDataQueryParam param, Long employeeId, String tenantKey) {
|
||||
if (param.getId() == null || param.getDimensionId() == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||
}
|
||||
|
||||
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId(), tenantKey);
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 161845, "薪酬统计报表不存在"));
|
||||
}
|
||||
SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId(), tenantKey);
|
||||
if (dimension == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 161300, "统计维度不存在"));
|
||||
}
|
||||
// 查询自定义统计项目
|
||||
List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId(), employeeId, tenantKey);
|
||||
// 列表data
|
||||
Page<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList, employeeId, tenantKey);
|
||||
// 组装合计
|
||||
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, employeeId, tenantKey);
|
||||
if (CollectionUtils.isNotEmpty(page.getRecords()) && MapUtils.isNotEmpty(countResultMap)) {
|
||||
page.getRecords().add(countResultMap);
|
||||
}
|
||||
// 获取数据
|
||||
List<Map<String, String>> records = CollectionUtils.emptyIfNull(page.getRecords()).stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList());
|
||||
|
||||
// 获取列头
|
||||
List<WeaTableColumn> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList, employeeId, tenantKey);
|
||||
|
||||
// 组装导出参数
|
||||
ExportCommonParam exportParam = SalaryStatisticsReportBO.buildExportParam(dimension.getDimName(), weaTableColumns, records);
|
||||
exportParam.setSheetName(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 179263, "薪酬统计报表") + "-" + exportParam.getDimensionName());
|
||||
return subTableExportService.exportCommon(exportParam, UserContext.getCurrentUser(), TenantContext.getCurrentTenantKey());
|
||||
// if (param.getId() == null || param.getDimensionId() == null) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||
// }
|
||||
//
|
||||
// SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId());
|
||||
// if (po == null) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
|
||||
// }
|
||||
// SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId());
|
||||
// if (dimension == null) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161300, "统计维度不存在"));
|
||||
// }
|
||||
// // 查询自定义统计项目
|
||||
// List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId());
|
||||
// // 列表data
|
||||
// Page<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList);
|
||||
// // 组装合计
|
||||
// Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList);
|
||||
// if (CollectionUtils.isNotEmpty(page.getRecords()) && MapUtils.isNotEmpty(countResultMap)) {
|
||||
// page.getRecords().add(countResultMap);
|
||||
// }
|
||||
// // 获取数据
|
||||
// List<Map<String, String>> records = CollectionUtils.emptyIfNull(page.getRecords()).stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList());
|
||||
//
|
||||
// // 获取列头
|
||||
// List<WeaTableColumn> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList);
|
||||
//
|
||||
// // 组装导出参数
|
||||
// ExportCommonParam exportParam = SalaryStatisticsReportBO.buildExportParam(dimension.getDimName(), weaTableColumns, records);
|
||||
// exportParam.setSheetName(SalaryI18nUtil.getI18nLabel(179263, "薪酬统计报表") + "-" + exportParam.getDimensionName());
|
||||
// return subTableExportService.exportCommon(exportParam, UserContext.getCurrentUser(), TenantContext.get());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue