diff --git a/nflg_project_dev/nflg-bom-new/pom.xml b/nflg_project_dev/nflg-bom-new/pom.xml
new file mode 100644
index 00000000..bc91d14c
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/pom.xml
@@ -0,0 +1,112 @@
+
+
+
+ product
+ com.nflg
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ nflg-bom-new
+ jar
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ com.nflg.product.starter
+ nflg-boot-starter
+ 1.0-SNAPSHOT
+
+
+ com.nflg.product.base.core
+ nflg.boot.core
+ 1.0-SNAPSHOT
+
+
+
+ commons-beanutils
+ commons-beanutils
+
+
+
+ org.apache.commons
+ commons-pool2
+
+
+
+
+
+ org.ttzero
+ eec
+ ${eec.version}
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-ldap
+
+
+
+
+ com.belerweb
+ pinyin4j
+ 2.5.1
+
+
+
+ com.sap.cloud.db.jdbc
+ ngdbc
+ 2.4.64
+
+
+
+ com.baomidou
+ dynamic-datasource-spring-boot-starter
+ 3.2.1
+
+
+
+
+
+ jcifs
+ jcifs
+ ${jcifs.version}
+
+
+
+ com.hierynomus
+ smbj
+ 0.11.5
+
+
+ cn.hutool
+ hutool-all
+ ${hutool-version}
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+ 2.6.4
+
+
+
+
+
\ No newline at end of file
diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java
new file mode 100644
index 00000000..3e82efe0
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java
@@ -0,0 +1,27 @@
+package com.nflg;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import springfox.documentation.oas.annotations.EnableOpenApi;
+
+import java.time.ZoneId;
+import java.util.TimeZone;
+
+@SpringBootApplication
+@EnableTransactionManagement(proxyTargetClass = true)
+@ComponentScan(basePackages = {"com.nflg.product.bomnew","com.nflg.product.base.core.config","com.nflg.product.base.core.exception"})
+@EnableOpenApi
+@EnableDiscoveryClient
+@EnableScheduling
+public class BomnewApplication {
+
+ public static void main(String[] args) {
+ TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.SHORT_IDS.get("CTT")));
+ final ConfigurableApplicationContext run = SpringApplication.run(BomnewApplication.class, args);
+ }
+}
diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/DruidStatFilter.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/DruidStatFilter.java
new file mode 100644
index 00000000..a04f1ab6
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/DruidStatFilter.java
@@ -0,0 +1,14 @@
+package com.nflg.product.bomnew.config;
+
+import com.alibaba.druid.support.http.WebStatFilter;
+
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.annotation.WebInitParam;
+
+@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",
+ initParams = {
+ @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
+ }
+)
+public class DruidStatFilter extends WebStatFilter {
+}
diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/MasterDataSourceConfig.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/MasterDataSourceConfig.java
new file mode 100644
index 00000000..0eae6165
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/MasterDataSourceConfig.java
@@ -0,0 +1,137 @@
+package com.nflg.product.bomnew.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import com.nflg.product.base.core.config.MybatisPlusHandler;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+
+/**
+ * 主数据源配置
+ * @Author 大米
+ * @Date 2022-04-27
+ */
+@Configuration
+@EnableTransactionManagement
+@MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
+public class MasterDataSourceConfig {
+
+ /**
+ * Mapper.java包扫描路径
+ */
+ static final String PACKAGE = "com.nflg.product.material.mapper.master";
+ /**
+ * Mapper.xml包扫描路径
+ */
+ static final String MAPPER_LOCATION = "classpath*:mapper/master/**/*.xml";
+
+ /**
+ * 主数据源地址
+ */
+ @Value("${master.datasource.url}")
+ private String url;
+
+ /**
+ * 主数据源账号
+ */
+ @Value("${master.datasource.username}")
+ private String user;
+
+ /**
+ * 主数据源密码
+ */
+ @Value("${master.datasource.password}")
+ private String password;
+
+ /**
+ * 数据库驱动类
+ */
+ @Value("${master.datasource.driverClassName}")
+ private String driverClass;
+
+
+ /**
+ * mybatis 拦截器
+ */
+ @Resource
+ MybatisPlusHandler mybatisPlusHandler;
+ /**
+ * 加载主数据源信息
+ *
+ * @return
+ */
+ @Primary
+ @Bean(name = "masterDataSource")
+ public DataSource masterDataSource() {
+ DruidDataSource dataSource = new DruidDataSource();
+ dataSource.setDriverClassName(driverClass);
+ dataSource.setUrl(url);
+ dataSource.setName(user);
+ dataSource.setPassword(password);
+ dataSource.setMaxActive(500);
+ dataSource.setMinIdle(2);
+ dataSource.setInitialSize(2);
+ dataSource.setDefaultAutoCommit(false);
+ return dataSource;
+ }
+
+ /**
+ * 事务管理
+ *
+ * @return
+ */
+ @Primary
+ @Bean(name = "masterTransactionManager")
+ public DataSourceTransactionManager masterManager() {
+ return new DataSourceTransactionManager(masterDataSource());
+ }
+
+ /**
+ * SqlSession工厂
+ *
+ * @param masterDataSource
+ * @return
+ * @throws Exception
+ */
+ @Primary
+ @Bean(name = "masterSqlSessionFactory")
+ public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource) throws Exception {
+ final MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
+ MybatisConfiguration configuration = new MybatisConfiguration();
+ configuration.setMapUnderscoreToCamelCase(true);
+ configuration.setCallSettersOnNulls(true);
+ sqlSessionFactoryBean.setConfiguration(configuration);
+ sqlSessionFactoryBean.setDataSource(masterDataSource);
+ // 配置拦截器
+ sqlSessionFactoryBean.setPlugins(mybatisPlusInterceptor());
+ // 配置自动填充功能
+ sqlSessionFactoryBean.setGlobalConfig(new GlobalConfig().setMetaObjectHandler(mybatisPlusHandler));
+ sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MasterDataSourceConfig.MAPPER_LOCATION));
+ return sqlSessionFactoryBean.getObject();
+ }
+
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
+ }
+
+
+}
diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java
new file mode 100644
index 00000000..d250b4e5
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java
@@ -0,0 +1,90 @@
+package com.nflg.product.bomnew.config;
+
+import com.nflg.product.base.core.config.SpringContextUtils;
+import lombok.Getter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @decription
+ * @Author 大米
+ * @Date 2022/9/2 14:35
+ **/
+@Configuration
+@Getter
+@RefreshScope
+public class NacosConfig {
+
+ @Value("${ad.user.default.pwd}")
+ private String defaultPwd;
+
+ @Value("${nflg.dpt.rowid}")
+ private Long nflgDeptRowId;
+
+
+ @Value("${plm.url}")
+ private String plmUrl;
+ @Value("${plm.user}")
+ private String plmUserName;
+ @Value("${plm.password}")
+ private String plmPassWord;
+ @Value("${plm.vault}")
+ private String plmVault;
+
+
+ @Value("${plm.file.path}")
+ private String plmFilePath;
+
+ @Value("${oa.url}")
+ private String oaUrl;
+
+ @Value("${oa.material.state.url}")
+ private String oaGetStateUrl;
+
+ @Value("${oa.material.update.url}")
+ private String oaUpMaterialUrl;
+
+ @Value("${oa.material.update.state}")
+ private String oaUpStateQueryUrl;
+
+ @Value("${oa.material.summary}")
+ private String summary;
+
+// @Value("${model.type}")
+// private String modelCategory;
+//
+// @Value("${model.struct}")
+// private String modelStruct;
+
+ @Value("${ini.file.ip}")
+ private String iniIp;
+
+ @Value("${ini.username}")
+ private String iniUserName;
+
+ @Value("${ini.pwd}")
+ private String iniPwd;
+
+ @Value("${ini.share.name}")
+ private String shareName;
+
+ @Value("${ini.file.name}")
+ private String iniFileNameTemplate;
+
+ @Value("${ini.file.local.path}")
+ private String localFilePath;
+
+ @Value("${ini.domain}")
+ private String iniDomain;
+
+ @Value("${ini.share.path}")
+ private String sharePath;
+
+
+
+
+ public static NacosConfig getNacosConfig(){
+ return SpringContextUtils.getBean(NacosConfig.class);
+ }
+}
diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/fallback/ValideUserApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/fallback/ValideUserApi.java
new file mode 100644
index 00000000..7472b472
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/fallback/ValideUserApi.java
@@ -0,0 +1,32 @@
+package com.nflg.product.bomnew.fallback;
+
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import nflg.product.common.constant.STATE;
+import nflg.product.common.vo.ResultVO;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+/**
+ * @decription
+ * @Author 大米
+ * @Date 2022/7/14 18:44
+ **/
+@Slf4j
+@RequestMapping("fallback")
+@RestController
+public class ValideUserApi {
+ @PostMapping("authorize/fail")
+ @ApiOperation("用户验证失败")
+ public ResultVO authorizeFail(Integer stateCode) {
+ if(!Objects.isNull(stateCode) && stateCode.equals(STATE.PassportErr.getState())){
+
+ return ResultVO.error(STATE.PassportErr,STATE.PassportErr.getMsg());
+ }
+
+ return ResultVO.error(STATE.LoginError,STATE.LoginError.getMsg());
+ }
+}
diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-dev.properties b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-dev.properties
new file mode 100644
index 00000000..74ba7641
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-dev.properties
@@ -0,0 +1,4 @@
+#nacos.server-addr=114.132.64.230:8123
+nacos.server-addr=192.168.0.194:8848
+
+
diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-prod.properties b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-prod.properties
new file mode 100644
index 00000000..f648f2ca
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-prod.properties
@@ -0,0 +1 @@
+nacos.server-addr=192.168.0.191:8848
\ No newline at end of file
diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-sit.properties b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-sit.properties
new file mode 100644
index 00000000..74ba7641
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap-sit.properties
@@ -0,0 +1,4 @@
+#nacos.server-addr=114.132.64.230:8123
+nacos.server-addr=192.168.0.194:8848
+
+
diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap.properties b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap.properties
new file mode 100644
index 00000000..e36644ac
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/src/main/resources/bootstrap.properties
@@ -0,0 +1,30 @@
+spring.application.name=bom-new
+spring.profiles.active=dev
+
+spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
+
+spring.cloud.nacos.config.namespace=nflg_dev
+spring.cloud.nacos.discovery.namespace=nflg_dev
+spring.cloud.nacos.config.file-extension=properties
+nacos.plugin.namespace=nflg_dev
+
+#configuration
+spring.cloud.nacos.config.server-addr=${nacos.server-addr}
+spring.cloud.nacos.config.group=${spring.profiles.active}
+
+spring.cloud.nacos.config.extension-configs[0].data-id=application-${spring.profiles.active}.properties
+spring.cloud.nacos.config.extension-configs[0].group=${spring.profiles.active}
+spring.cloud.nacos.config.extension-configs[0].refresh=true
+spring.cloud.nacos.config.extension-configs[1].data-id=mysql-${spring.profiles.active}.properties
+spring.cloud.nacos.config.extension-configs[1].group=${spring.profiles.active}
+spring.cloud.nacos.config.extension-configs[1].refresh=true
+
+#discovery
+spring.cloud.nacos.discovery.server-addr=${nacos.server-addr}
+spring.cloud.nacos.discovery.group=${spring.profiles.active}
+spring.cloud.nacos.discovery.metadata.group=${spring.profiles.active}
+spring.cloud.nacos.discovery.metadata.region=${env_region:blue}
+spring.cloud.nacos.discovery.metadata.env=${spring.profiles.active}
+
+logging.level.com.nflg.product.material.mapper.master=INFO
+
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-dev.properties b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-dev.properties
new file mode 100644
index 00000000..74ba7641
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-dev.properties
@@ -0,0 +1,4 @@
+#nacos.server-addr=114.132.64.230:8123
+nacos.server-addr=192.168.0.194:8848
+
+
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-prod.properties b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-prod.properties
new file mode 100644
index 00000000..f648f2ca
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-prod.properties
@@ -0,0 +1 @@
+nacos.server-addr=192.168.0.191:8848
\ No newline at end of file
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-sit.properties b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-sit.properties
new file mode 100644
index 00000000..74ba7641
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap-sit.properties
@@ -0,0 +1,4 @@
+#nacos.server-addr=114.132.64.230:8123
+nacos.server-addr=192.168.0.194:8848
+
+
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/bootstrap.properties b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap.properties
new file mode 100644
index 00000000..e36644ac
--- /dev/null
+++ b/nflg_project_dev/nflg-bom-new/target/classes/bootstrap.properties
@@ -0,0 +1,30 @@
+spring.application.name=bom-new
+spring.profiles.active=dev
+
+spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
+
+spring.cloud.nacos.config.namespace=nflg_dev
+spring.cloud.nacos.discovery.namespace=nflg_dev
+spring.cloud.nacos.config.file-extension=properties
+nacos.plugin.namespace=nflg_dev
+
+#configuration
+spring.cloud.nacos.config.server-addr=${nacos.server-addr}
+spring.cloud.nacos.config.group=${spring.profiles.active}
+
+spring.cloud.nacos.config.extension-configs[0].data-id=application-${spring.profiles.active}.properties
+spring.cloud.nacos.config.extension-configs[0].group=${spring.profiles.active}
+spring.cloud.nacos.config.extension-configs[0].refresh=true
+spring.cloud.nacos.config.extension-configs[1].data-id=mysql-${spring.profiles.active}.properties
+spring.cloud.nacos.config.extension-configs[1].group=${spring.profiles.active}
+spring.cloud.nacos.config.extension-configs[1].refresh=true
+
+#discovery
+spring.cloud.nacos.discovery.server-addr=${nacos.server-addr}
+spring.cloud.nacos.discovery.group=${spring.profiles.active}
+spring.cloud.nacos.discovery.metadata.group=${spring.profiles.active}
+spring.cloud.nacos.discovery.metadata.region=${env_region:blue}
+spring.cloud.nacos.discovery.metadata.env=${spring.profiles.active}
+
+logging.level.com.nflg.product.material.mapper.master=INFO
+
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/BomnewApplication.class b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/BomnewApplication.class
new file mode 100644
index 00000000..6bba1ec4
Binary files /dev/null and b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/BomnewApplication.class differ
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/DruidStatFilter.class b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/DruidStatFilter.class
new file mode 100644
index 00000000..d0d10698
Binary files /dev/null and b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/DruidStatFilter.class differ
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/MasterDataSourceConfig.class b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/MasterDataSourceConfig.class
new file mode 100644
index 00000000..e87e7fab
Binary files /dev/null and b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/MasterDataSourceConfig.class differ
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/NacosConfig.class b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/NacosConfig.class
new file mode 100644
index 00000000..67cf0c5d
Binary files /dev/null and b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/config/NacosConfig.class differ
diff --git a/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/fallback/ValideUserApi.class b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/fallback/ValideUserApi.class
new file mode 100644
index 00000000..a3442ce4
Binary files /dev/null and b/nflg_project_dev/nflg-bom-new/target/classes/com/nflg/product/bomnew/fallback/ValideUserApi.class differ