package pwc.taxtech.atms.common.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import pwc.taxtech.atms.dao.FormulaAdminMapper; import pwc.taxtech.atms.dao.OrganizationMapper; import pwc.taxtech.atms.dao.ProjectDao; import pwc.taxtech.atms.dao.ProjectMapper; import pwc.taxtech.atms.dao.ProjectServiceTypeMapper; import pwc.taxtech.atms.invoice.InputInvoiceMapper; import pwc.taxtech.atms.invoice.OutputInvoiceDetailMapper; import pwc.taxtech.atms.invoice.OutputInvoiceMapper; import pwc.taxtech.atms.service.impl.DistributedIdService; import pwc.taxtech.atms.vat.dao.*; import pwc.taxtech.atms.vat.entity.OutputInvoiceDetail; //用来获取spring托管的bean @Component public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext webApplicationContext; public static FormulaAdminMapper formulaAdminMapper; public static PeriodReportMapper reportMapper; public static CellDataMapper cellDataMapper; public static PeriodCellDataMapper periodCellDataMapper; public static DistributedIdService distributedIdService; public static PeriodFormulaBlockMapper formulaBlockMapper; public static PeriodCellTemplateMapper periodCellTemplateMapper; public static ProjectServiceTypeMapper projectServiceTypeMapper; public static PeriodTemplateMapper periodTemplateMapper; public static PeriodStandardAccountMapper periodStandardAccountMapper; public static ProjectDao projectDao; public static BalanceMapper balanceMapper; // public static DataSourceMapper dataSourceMapper; public static PeriodDataSourceMapper periodDataSourceMapper; // public static DataSourceDetailMapper dataSourceDetailMapper; public static PeriodDataSourceDetailMapper periodDataSourceDetailMapper; public static PeriodFormulaBlockMapper periodFormulaBlockMapper; public static VatEnterpriseAccountDao vatEnterpriseAccountDao; public static VatEnterpriseAccountMapper vatEnterpriseAccountMapper; public static PeriodEnterpriseAccountMapper periodEnterpriseAccountMapper; public static BalanceStdManualMapper balanceStdManualMapper; public static OutputInvoiceMapper outputInvoiceMapper; public static OutputInvoiceDetailMapper outputInvoiceDetailMapper; public static PeriodTaxRuleSettingMapper periodTaxRuleSettingMapper; public static InputInvoiceDao inputInvoiceDao; public static InputInvoiceMapper inputInvoiceMapper; public static InputVatInvoiceMapper inputVatInvoiceMapper; public static AssetsListMapper assetsListMapper; public static ProjectMapper projectMapper; public static CellDataSourceMapper cellDataSourceMapper; public static PeriodCellDataSourceMapper periodCellDataSourceMapper; public static OrganizationMapper organizationMapper; /** * 获取bean * * @param requiredType * @param <T> * @return */ public static <T> T getBean(Class<T> requiredType) { return SpringContextUtil.webApplicationContext.getBean(requiredType); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { webApplicationContext = applicationContext; formulaAdminMapper = webApplicationContext.getBean(FormulaAdminMapper.class); reportMapper = webApplicationContext.getBean(PeriodReportMapper.class); cellDataMapper = webApplicationContext.getBean(CellDataMapper.class); periodCellDataMapper = webApplicationContext.getBean(PeriodCellDataMapper.class); distributedIdService = webApplicationContext.getBean(DistributedIdService.class); formulaBlockMapper = webApplicationContext.getBean(PeriodFormulaBlockMapper.class); periodCellTemplateMapper = webApplicationContext.getBean(PeriodCellTemplateMapper.class); projectServiceTypeMapper = webApplicationContext.getBean(ProjectServiceTypeMapper.class); periodTemplateMapper = webApplicationContext.getBean(PeriodTemplateMapper.class); // periodStandardAccountMapper = webApplicationContext.getBean(PeriodStandardAccountMapper.class); periodStandardAccountMapper = webApplicationContext.getBean(PeriodStandardAccountMapper.class); projectDao = webApplicationContext.getBean(ProjectDao.class); balanceMapper = webApplicationContext.getBean(BalanceMapper.class); // dataSourceMapper = webApplicationContext.getBean(DataSourceMapper.class); periodDataSourceMapper = webApplicationContext.getBean(PeriodDataSourceMapper.class); // dataSourceDetailMapper = webApplicationContext.getBean(DataSourceDetailMapper.class); periodDataSourceDetailMapper = webApplicationContext.getBean(PeriodDataSourceDetailMapper.class); periodFormulaBlockMapper = webApplicationContext.getBean(PeriodFormulaBlockMapper.class); vatEnterpriseAccountDao = webApplicationContext.getBean(VatEnterpriseAccountDao.class); vatEnterpriseAccountMapper = webApplicationContext.getBean(VatEnterpriseAccountMapper.class); periodEnterpriseAccountMapper = webApplicationContext.getBean(PeriodEnterpriseAccountMapper.class); balanceStdManualMapper = webApplicationContext.getBean(BalanceStdManualMapper.class); // outputVatInvoiceMapper = webApplicationContext.getBean(OutputVatInvoiceMapper.class); outputInvoiceMapper = webApplicationContext.getBean(OutputInvoiceMapper.class); outputInvoiceDetailMapper = webApplicationContext.getBean(OutputInvoiceDetailMapper.class); periodTaxRuleSettingMapper = webApplicationContext.getBean(PeriodTaxRuleSettingMapper.class); // inputVatInvoiceDao = webApplicationContext.getBean(InputVatInvoiceDao.class); inputVatInvoiceMapper = webApplicationContext.getBean(InputVatInvoiceMapper.class); inputInvoiceDao = webApplicationContext.getBean(InputInvoiceDao.class); inputInvoiceMapper = webApplicationContext.getBean(InputInvoiceMapper.class); assetsListMapper = webApplicationContext.getBean(AssetsListMapper.class); projectMapper = webApplicationContext.getBean(ProjectMapper.class); cellDataSourceMapper = webApplicationContext.getBean(CellDataSourceMapper.class); periodCellDataSourceMapper = webApplicationContext.getBean(PeriodCellDataSourceMapper.class); organizationMapper = webApplicationContext.getBean(OrganizationMapper.class); } }