diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml
index 2d202b6..35ae326 100644
--- a/lms/nladmin-system/pom.xml
+++ b/lms/nladmin-system/pom.xml
@@ -31,6 +31,16 @@
     </properties>
 
     <dependencies>
+        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
+        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>6.4.0.jre8</version>
+        </dependency>
+
+
+
         <dependency>
             <groupId>org.redisson</groupId>
             <artifactId>redisson-spring-boot-starter</artifactId>
@@ -270,7 +280,7 @@
         <dependency>
             <groupId>commons-beanutils</groupId>
             <artifactId>commons-beanutils-core</artifactId>
-            <version>1.8.0</version>
+            <version>1.8.3</version>
         </dependency>
 
         <dependency>
diff --git a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
index f679d3b..0f40b46 100644
--- a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
+++ b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
@@ -1,18 +1,33 @@
 package org.nl.config;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.druid.pool.DruidDataSource;
 import lombok.extern.slf4j.Slf4j;
+import org.nl.modules.mnt.util.DataTypeEnum;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 
 import javax.sql.DataSource;
+import java.sql.DriverManager;
+import java.sql.SQLException;
 
 @Configuration
 @Slf4j
 public class DataBaseConfig {
 
+    @Value("${erp.sqlserver.enabled}")
+    private boolean sqlserverIsConnect;
+    @Value("${erp.sqlserver.jdbcurl}")
+    private String sqlserverJdbcUrl;
+    @Value("${erp.sqlserver.username}")
+    private String sqlserverUserName;
+    @Value("${erp.sqlserver.password}")
+    private String sqlserverPassword;
+
     @Primary
     @Bean(name = "dataSource")
     @ConfigurationProperties(prefix = "spring.datasource.druid")
@@ -20,4 +35,51 @@ public class DataBaseConfig {
         return new DruidDataSource();
     }
 
+    @Bean("dataSource1")
+    @ConditionalOnExpression("${erp.sqlserver.enabled:true}")
+    public DataSource dataSource1() {
+        log.info("是否连接Sqlserver" + sqlserverIsConnect);
+        String jdbcUrl = sqlserverJdbcUrl;
+        String userName = sqlserverUserName;
+        String password = sqlserverPassword;
+        DruidDataSource druidDataSource = new DruidDataSource();
+        String className;
+        try {
+            className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName();
+        } catch (SQLException e) {
+            throw new RuntimeException("Get class name error: =" + jdbcUrl);
+        }
+        if (StrUtil.isEmpty(className)) {
+            DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl);
+            if (null == dataTypeEnum) {
+                throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl);
+            }
+            druidDataSource.setDriverClassName(dataTypeEnum.getDriver());
+        } else {
+            druidDataSource.setDriverClassName(className);
+        }
+
+
+        druidDataSource.setUrl(jdbcUrl);
+        druidDataSource.setUsername(userName);
+        druidDataSource.setPassword(password);
+        // 配置获取连接等待超时的时间
+        druidDataSource.setMaxWait(3000);
+        // 配置初始化大小、最小、最大
+        druidDataSource.setInitialSize(5);
+        druidDataSource.setMinIdle(5);
+        druidDataSource.setMaxActive(10);
+
+        // 如果链接出现异常则直接判定为失败而不是一直重试
+        druidDataSource.setBreakAfterAcquireFailure(true);
+        try {
+            druidDataSource.init();
+        } catch (SQLException e) {
+            log.error("Exception during pool initialization", e);
+            throw new RuntimeException(e.getMessage());
+        }
+
+        return druidDataSource;
+    }
+
 }
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/dto/MaterialbaseDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/dto/MaterialbaseDto.java
index a8a75ff..09fd61a 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/dto/MaterialbaseDto.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/dto/MaterialbaseDto.java
@@ -50,11 +50,29 @@ public class MaterialbaseDto implements Serializable {
     private String update_time;
 
     /**
-     * 是否启用
+     * 是否删除
      */
-    private String is_used;
+    private String is_delete;
 
     private Double weight;
 
     private String material_type;
+
+    private Double qty;
+
+    private Double aux_qty;
+
+    private Double current_qty;
+
+    private Double current_aux_qty;
+
+    private String order_code;
+
+    private String furnace;
+
+    private String material_brick_type;
+
+    private String product_grade;
+
+    private Double unqualified_qty;
 }
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java
index bfb04c8..c40f9d8 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java
@@ -30,6 +30,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @author zhouz
@@ -51,6 +52,9 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
         map.put("flag", "1");
         map.put("search", name);
         map.put("material_type", MapUtil.getStr(whereJson, "material_type"));
+        map.put("order_code", MapUtil.getStr(whereJson, "order_code"));
+        map.put("product_grade", MapUtil.getStr(whereJson, "product_grade"));
+        map.put("brick_type", MapUtil.getStr(whereJson, "brick_type"));
 
         return WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time DESC");
     }
@@ -106,52 +110,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
         dto.setCreate_time(now);
         JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
         wo.insert(json);
-
-        // 解析物料编码
-        JSONObject material_detail = new JSONObject();
-        material_detail.put("material_id", id);
-        material_detail.put("material_code", material_code);
-        WQLObject dict_detail_table = WQLObject.getWQLObject("sys_dict_detail");
-        String furnace_code = material_code.substring(0, 2);
-        JSONObject furnace_name = dict_detail_table.query("name = 'furnace' AND value = '" + furnace_code + "'").uniqueResult(0);
-        if (ObjectUtil.isEmpty(furnace_name)) {
-            throw new BadRequestException("物料编码解析错误:未知炉型!");
-        }
-        material_detail.put("furnace", furnace_name.getString("label"));
-        String material_brick_code = material_code.substring(2, 5);
-        JSONObject material_brick_type = dict_detail_table.query("name = 'material_brick_type' AND value = '" + material_brick_code + "'").uniqueResult(0);
-        if (ObjectUtil.isEmpty(material_brick_type)) {
-            throw new BadRequestException("物料编码解析错误:未知物料砖类型!");
-        }
-        material_detail.put("material_brick_type", material_brick_type.getString("label"));
-
-        String bom_code = material_code.substring(5, 11);
-        JSONObject old_bom = wo.query("material_code = '" + bom_code + "'").uniqueResult(0);
-        if (ObjectUtil.isEmpty(old_bom)) {
-            JSONObject bom = new JSONObject();
-            bom.put("material_id", IdUtil.getSnowflake(1, 1).nextId());
-            bom.put("material_code", bom_code);
-            bom.put("material_type", "2");
-            bom.put("create_id", currentUserId);
-            bom.put("create_name", nickName);
-            bom.put("create_time", now);
-            wo.insert(bom);
-        }
-
-        material_detail.put("bom_code", bom_code);
-        material_detail.put("order_code", material_code.substring(11, 16));
-        material_detail.put("customer_code", material_code.substring(16, 21));
-        String product_grade_code = material_code.substring(21, 23);
-        JSONObject product_grade = dict_detail_table.query("name = 'product_grade' AND value = '" + product_grade_code + "'").uniqueResult(0);
-        if (ObjectUtil.isEmpty(product_grade)) {
-            throw new BadRequestException("物料编码解析错误:未知牌号!");
-        }
-        material_detail.put("product_grade", product_grade.getString("label"));
-        material_detail.put("brick_type", material_code.substring(23));
-        material_detail.put("create_id", currentUserId);
-        material_detail.put("create_name", nickName);
-        material_detail.put("create_time", now);
-        WQLObject.getWQLObject("md_me_material_detail").insert(material_detail);
     }
 
     @Override
@@ -199,8 +157,59 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
 
     @Override
     public void synchronize(Map whereJson) {
-       /* wmsToErpService.getClassInfo(null);
-        wmsToErpService.getMaterialInfo(null);*/
+        JSONArray erp_materials = WQL.getWO("QMD_ME_MATERIAL").setDbname("dataSource1").addParam("flag", "2").process().getResultJSONArray(0);
+        if (ObjectUtil.isNotEmpty(erp_materials)) {
+            WQLObject material_table = WQLObject.getWQLObject("md_me_materialbase");
+            List<String> material_codes = material_table.query().getResultJSONArray(0).stream().map(o -> ((JSONObject) o).getString("material_code")).collect(Collectors.toList());
+            WQLObject dict_detail_table = WQLObject.getWQLObject("sys_dict_detail");
+
+            Long user_id = SecurityUtils.getCurrentUserId();
+            String nick_name = SecurityUtils.getCurrentNickName();
+            String now = DateUtil.now();
+
+            erp_materials.forEach(o -> {
+                JSONObject erp_material = (JSONObject) o;
+                String material_code = erp_material.getString("cinvcode").substring(1);
+                if (!material_codes.contains(material_code)) {
+                    JSONObject material = new JSONObject();
+                    long id = IdUtil.getSnowflake(1L, 1L).nextId();
+                    material.put("material_id", id);
+                    material.put("material_code", material_code);
+                    material.put("material_name", erp_material.getString("cinvname"));
+                    material.put("weight", String.format("%.2f", erp_material.getDoubleValue("changerate") * 1000));
+                    String qty = String.format("%.0f", erp_material.getDoubleValue("qty") * 1000);
+                    material.put("qty", qty);
+                    material.put("surplus_qty", qty);
+                    String aux_qty = String.format("%.0f", erp_material.getDoubleValue("auxqty"));
+                    material.put("aux_qty", aux_qty);
+                    material.put("surplus_aux_qty", aux_qty);
+                    material.put("order_code", erp_material.getString("free1"));
+
+                    String furnace_code = material_code.substring(0, 2);
+                    JSONObject furnace_name = dict_detail_table.query("name = 'furnace' AND value = '" + furnace_code + "'").uniqueResult(0);
+                    if (ObjectUtil.isNotEmpty(furnace_name)) {
+                        material.put("furnace", furnace_name.getString("label"));
+                    } else {
+                        material.put("furnace", furnace_code);
+                    }
+                    String material_brick_code = material_code.substring(2, 5);
+                    JSONObject material_brick_type = dict_detail_table.query("name = 'material_brick_type' AND value = '" + material_brick_code + "'").uniqueResult(0);
+                    if (ObjectUtil.isNotEmpty(material_brick_type)) {
+                        material.put("material_brick_type", material_brick_type.getString("label"));
+                    } else {
+                        material.put("material_brick_type", material_brick_code);
+                    }
+                    material.put("product_grade", erp_material.getString("free3"));
+                    material.put("brick_type", erp_material.getString("free4"));
+
+                    material.put("create_id", user_id);
+                    material.put("create_name", nick_name);
+                    material.put("create_time", now);
+
+                    material_table.insert(material);
+                }
+            });
+        }
     }
 
     @Override
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql
index 738919a..b0d7c87 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql
@@ -18,7 +18,10 @@
 	输入.class_code			            TYPEAS s_string
     输入.idssql			                TYPEAS f_string
     输入.classIds			            TYPEAS f_string
-    输入.material_type			        TYPEAS f_string
+    输入.material_type			        TYPEAS s_string
+    输入.order_code   			        TYPEAS s_string
+    输入.product_grade   			    TYPEAS s_string
+    输入.brick_type   			        TYPEAS s_string
 
 [临时表]
 	--这边列出来的临时表就会在运行期动态创建
@@ -55,10 +58,31 @@
                 ENDOPTION
                 OPTION 输入.material_type <> ""
                     mb.material_type = 输入.material_type
+                ENDOPTION
+                OPTION 输入.order_code <> ""
+                    mb.order_code LIKE '%' order_code '%'
+                ENDOPTION
+                OPTION 输入.product_grade <> ""
+                    mb.product_grade LIKE '%' 输入.product_grade '%'
+                ENDOPTION
+                OPTION 输入.brick_type <> ""
+                    mb.brick_type LIKE '%' 输入.brick_type '%'
                 ENDOPTION
 			ENDSELECT
 		ENDPAGEQUERY
 	ENDIF
 
-
-
+	IF 输入.flag = "2"
+        QUERY
+            SELECT
+            	*
+            FROM
+            	dbo.EFV_MO_ORDER
+            WHERE
+            	STATUS = 3
+            	AND AuxQty > QualifiedInNum
+            	AND LEFT ( cinvcode, 1 ) <> '1'
+            	AND cInvCode LIKE 'W%'
+            ENDSELECT
+        ENDQUERY
+    ENDIF
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index 7b9bc3f..2fd7d99 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -915,7 +915,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
             throw new BadRequestException("载具编码不能为空!");
         }
 
-        boolean to_package = false;
+        boolean to_package = true;
 
         WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
         JSONObject vd = vd_table
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql
index 6a47352..3c08a04 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql
@@ -56,6 +56,7 @@
             	AND vd.is_delete = '0'
             	AND vd.point_code = 输入.point_code
             	AND vd.is_full = '0'
+            	AND vd.is_in_kiln = '0'
             ENDSELECT
 	    ENDQUERY
 	ENDIF
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql
index 666efde..91fba37 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql
@@ -116,9 +116,6 @@
             	AND point.vehicle_code = vd.vehicle_code
             	AND vd.is_delete = '0'
             	LEFT JOIN md_me_materialbase mb1 ON vd.material_id = mb1.material_id
-            	LEFT JOIN md_me_material_detail md ON mb1.material_code = md.bom_code
-            	LEFT JOIN md_me_materialbase mb2 ON md.material_id = mb2.material_id
-            	LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id
             WHERE
             	point.is_used = '1'
             	AND point.lock_type = '1'
@@ -126,10 +123,10 @@
             	AND point.point_type = '1'
                 AND point.point_status = '1'
             	AND point.vehicle_type = '1'
-            	AND mb2.material_id = 输入.material_id
+            	AND mb1.material_id = 输入.material_id
             	AND vd.stand_status IN ('3', '4')
             ORDER BY
-            	workorder.is_urgent DESC, vd.create_time ASC
+            	vd.create_time ASC
             ENDSELECT
         ENDQUERY
     ENDIF
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql
index 902bf2c..cd44e57 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql
@@ -109,15 +109,13 @@
             	JOIN pdm_bi_device device ON point.device_code = device.device_code
             	LEFT JOIN pdm_bd_workorder workorder ON device.device_id = workorder.device_id AND workorder.order_status = '3'
             	LEFT JOIN md_me_materialbase mb1 ON workorder.material_id = mb1.material_id AND mb1.material_type = '1'
-            	LEFT JOIN md_me_material_detail md1 ON mb1.material_id = md1.material_id
-            	LEFT JOIN md_me_materialbase mb2 ON md1.bom_code = mb2.material_code AND mb2.material_type = '2'
             WHERE
             	point.is_used = '1'
             	AND point.lock_type = '1'
             	AND point.region_code = 'KLHJ'
             	AND point.point_type = '2'
             	AND point.point_status = '0'
-            	AND mb2.material_id = 输入.material_id
+            	AND mb1.material_id = 输入.material_id
             ENDSELECT
         ENDQUERY
     ENDIF
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls
index de1dabd..63774b2 100644
Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls differ
diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml
index 11cca72..14d60b1 100644
--- a/lms/nladmin-system/src/main/resources/config/application-prod.yml
+++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml
@@ -158,3 +158,11 @@ sa-token:
   jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
   # token 前缀
   token-prefix: Bearer
+
+#erp
+erp:
+  sqlserver:
+    enabled: true
+    jdbcurl: jdbc:sqlserver://192.168.0.251:1433;DatabaseName=UFDATA_001_2023;
+    username: rl
+    password: SH123
diff --git a/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java b/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java
index 5e33959..57a8f66 100644
--- a/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java
+++ b/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java
@@ -1,6 +1,5 @@
 package org.nl.test;
 
-import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -8,18 +7,14 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.nl.modules.common.utils.CommonUtils;
+import org.nl.modules.common.utils.SecurityUtils;
 import org.nl.modules.wql.WQL;
 import org.nl.modules.wql.core.bean.WQLObject;
-import org.nl.modules.wql.util.SpringContextHolder;
-import org.nl.wms.basedata.eum.StandStatus;
-import org.nl.wms.ext.acs.service.WmsToAcsService;
-import org.nl.wms.sch.manage.LockType;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import java.util.ArrayList;
-import java.util.Set;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author zhangjiangwei
@@ -31,58 +26,58 @@ public class TempTest {
 
     @Test
     public void test01() {
-        JSONArray vds = WQL.getWO("MANAGE_QUERY").addParam("flag", "1").process().getResultJSONArray(0);
+        JSONArray erp_materials = WQL.getWO("QMD_ME_MATERIAL").setDbname("dataSource1").addParam("flag", "2").process().getResultJSONArray(0);
+        if (ObjectUtil.isNotEmpty(erp_materials)) {
+            WQLObject material_table = WQLObject.getWQLObject("md_me_materialbase");
+            List<String> material_codes = material_table.query().getResultJSONArray(0).stream().map(o -> ((JSONObject) o).getString("material_code")).collect(Collectors.toList());
+            WQLObject dict_detail_table = WQLObject.getWQLObject("sys_dict_detail");
 
-        if (ObjectUtil.isNotEmpty(vds)) {
-            ArrayList<Long> ids = new ArrayList<>();
-            for (int i = 0; i < vds.size(); i++) {
-                JSONObject vd = vds.getJSONObject(i);
-                DateTime create_time = DateUtil.parse(vd.getString("create_time"));
-                DateTime time = DateUtil.offsetMinute(create_time, vd.getIntValue("standing_time"));
-                int compare = DateUtil.compare(DateUtil.date(), time);
-                if (compare >= 0) {
-                    ids.add(vd.getLong("vd_id"));
-                }
-            }
-
-            JSONObject update = new JSONObject();
-            update.put("stand_status", StandStatus.COMPLETED.value());
-            WQLObject.getWQLObject("st_ivt_vehicle_detail").update(update, "vd_id IN " + CommonUtils.idsArrayToInStr(ids.toArray(new Long[0])));
-        }
+            Long user_id = 1L;
+            String nick_name = "管理员";
+            String now = DateUtil.now();
 
-        vds = WQL.getWO("MANAGE_QUERY").addParam("flag", "2").process().getResultJSONArray(0);
+            erp_materials.forEach(o -> {
+                JSONObject erp_material = (JSONObject) o;
+                String material_code = erp_material.getString("cinvcode").substring(1);
+                if (!material_codes.contains(material_code)) {
+                    JSONObject material = new JSONObject();
+                    long id = IdUtil.getSnowflake(1L, 1L).nextId();
+                    material.put("material_id", id);
+                    material.put("material_code", material_code);
+                    material.put("material_name", erp_material.getString("cinvname"));
+                    material.put("weight", String.format("%.2f", erp_material.getDoubleValue("changerate") * 1000));
+                    String qty = String.format("%.0f", erp_material.getDoubleValue("qty") * 1000);
+                    material.put("qty", qty);
+                    material.put("surplus_qty", qty);
+                    String aux_qty = String.format("%.0f", erp_material.getDoubleValue("auxqty"));
+                    material.put("aux_qty", aux_qty);
+                    material.put("surplus_aux_qty", aux_qty);
+                    material.put("order_code", erp_material.getString("free1"));
 
-        if (ObjectUtil.isNotEmpty(vds)) {
-            ArrayList<Long> ids = new ArrayList<>();
-            for (int i = 0; i < vds.size(); i++) {
-                JSONObject vd = vds.getJSONObject(i);
-                DateTime create_time = DateUtil.parse(vd.getString("create_time"));
-                int threshold_time = vd.getIntValue("threshold_time");
-                int standing_time = vd.getIntValue("standing_time");
-                if (threshold_time != 0 && threshold_time < standing_time) {
-                    DateTime time = DateUtil.offsetMinute(create_time, threshold_time);
-                    int compare = DateUtil.compare(DateUtil.date(), time);
-                    if (compare >= 0) {
-                        ids.add(vd.getLong("vd_id"));
+                    String furnace_code = material_code.substring(0, 2);
+                    JSONObject furnace_name = dict_detail_table.query("name = 'furnace' AND value = '" + furnace_code + "'").uniqueResult(0);
+                    if (ObjectUtil.isNotEmpty(furnace_name)) {
+                        material.put("furnace", furnace_name.getString("label"));
+                    } else {
+                        material.put("furnace", furnace_code);
                     }
-                }
-            }
+                    String material_brick_code = material_code.substring(2, 5);
+                    JSONObject material_brick_type = dict_detail_table.query("name = 'material_brick_type' AND value = '" + material_brick_code + "'").uniqueResult(0);
+                    if (ObjectUtil.isNotEmpty(material_brick_type)) {
+                        material.put("material_brick_type", material_brick_type.getString("label"));
+                    } else {
+                        material.put("material_brick_type", material_brick_code);
+                    }
+                    material.put("product_grade", erp_material.getString("free3"));
+                    material.put("brick_type", erp_material.getString("free4"));
 
-            if (!ids.isEmpty()) {
-                JSONObject update = new JSONObject();
-                update.put("stand_status", StandStatus.TIMEOUT.value());
-                WQLObject.getWQLObject("st_ivt_vehicle_detail").update(update, "vd_id IN " + CommonUtils.idsArrayToInStr(ids.toArray(new Long[0])));
-            }
-        }
+                    material.put("create_id", user_id);
+                    material.put("create_name", nick_name);
+                    material.put("create_time", now);
 
-        JSONArray points = WQL.getWO("MANAGE_QUERY").addParam("flag", "3").process().getResultJSONArray(0);
-        if (ObjectUtil.isNotEmpty(vds)) {
-            JSONArray point_codes = new JSONArray();
-            for (int i = 0; i < points.size(); i++) {
-                JSONObject point = points.getJSONObject(i);
-                point_codes.add(point.getString("point_code"));
-            }
-            SpringContextHolder.getBean(WmsToAcsService.class).light(point_codes);
+                    material_table.insert(material);
+                }
+            });
         }
     }
 }
diff --git a/lms/nladmin-ui/src/views/wms/basedata/bom/index.vue b/lms/nladmin-ui/src/views/wms/basedata/bom/index.vue
index 35b51b4..0edbccb 100644
--- a/lms/nladmin-ui/src/views/wms/basedata/bom/index.vue
+++ b/lms/nladmin-ui/src/views/wms/basedata/bom/index.vue
@@ -10,11 +10,11 @@
           label-width="90px"
           label-suffix=":"
         >
-          <el-form-item label="BOM编码">
+          <el-form-item label="物料编码">
             <el-input
               v-model="query.name"
               clearable
-              placeholder="BOM编码"
+              placeholder="物料编码"
               @keyup.enter.native="crud.toQuery"
             />
           </el-form-item>
diff --git a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
index b86c221..c763aa0 100644
--- a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
+++ b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
@@ -35,17 +35,80 @@
           <el-row>
             <el-col :span="12">
               <el-form-item label="物料编码" prop="material_code">
-                <el-input :disabled="crud.status.edit" v-model="form.material_code" clearable style="width: 300px" />
+                <el-input v-model="form.material_code" :disabled="crud.status.edit" clearable style="width: 300px" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="单重" prop="weight">
+              <el-form-item label="订单编码" prop="order_code">
+                <el-input v-model="form.order_code" :disabled="crud.status.edit" style="width: 300px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="部位" prop="product_grade">
+                <el-input v-model="form.product_grade" :disabled="crud.status.edit" style="width: 300px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="炉型" prop="furnace">
+                <el-input v-model="form.furnace" :disabled="crud.status.edit" style="width: 300px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="砖型" prop="brick_type">
+                <el-input v-model="form.brick_type" :disabled="crud.status.edit" style="width: 300px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="类别" prop="material_brick_type">
+                <el-input v-model="form.material_brick_type" :disabled="crud.status.edit" style="width: 300px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="订单单重" prop="weight">
                 <el-input v-model="form.weight" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">千克</i></el-input>
               </el-form-item>
             </el-col>
           </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="订单数量" prop="aux_qty">
+                <el-input v-model="form.aux_qty" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">块</i></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="订单重量" prop="qty">
+                <el-input v-model="form.qty" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">千克</i></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="困料时间" prop="standing_time">
+                <el-input v-model="form.standing_time" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">分钟</i></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="超时时间" prop="threshold_time">
+                <el-input v-model="form.threshold_time" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">分钟</i></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-row>
             <el-col :span="12">
               <el-form-item label="产品编号" prop="product_code">
@@ -97,7 +160,21 @@
         @selection-change="crud.selectionChangeHandler"
       >
         <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
-        <el-table-column prop="weight" label="单重" :min-width="flexWidth('weight',crud.data,'单重')" />
+        <el-table-column prop="order_code" label="订单编码" :min-width="flexWidth('order_code',crud.data,'订单编码')" />
+        <el-table-column prop="product_grade" label="部位" :min-width="flexWidth('weight',crud.data,'部位')" />
+        <el-table-column prop="furnace" label="炉型" :min-width="flexWidth('furnace',crud.data,'炉型')" />
+        <el-table-column prop="brick_type" label="砖型" :min-width="flexWidth('brick_type',crud.data,'砖型')" />
+        <el-table-column prop="material_brick_type" label="类别" :min-width="flexWidth('material_brick_type',crud.data,'类别')" />
+        <el-table-column prop="weight" label="订单单重" :min-width="flexWidth('weight',crud.data,'订单单重')" />
+        <el-table-column prop="aux_qty" label="订单数量" :min-width="flexWidth('aux_qty',crud.data,'订单数量')" />
+        <el-table-column prop="qty" label="订单重量" :min-width="flexWidth('qty',crud.data,'订单重量')" />
+        <el-table-column prop="current_aux_qty" label="完成数量" :min-width="flexWidth('current_aux_qty',crud.data,'完成数量')" />
+        <el-table-column prop="unqualified_qty" label="废砖数量" :min-width="flexWidth('unqualified_qty',crud.data,'废砖数量')" />
+        <el-table-column prop="current_qty" label="完成总重" :min-width="flexWidth('current_qty',crud.data,'完成总重')" />
+        <el-table-column prop="surplus_aux_qty" label="剩余数量" :min-width="flexWidth('surplus_aux_qty',crud.data,'剩余数量')" />
+        <el-table-column prop="surplus_qty" label="剩余重量" :min-width="flexWidth('surplus_qty',crud.data,'剩余重量')" />
+        <el-table-column prop="standing_time" label="困料时间" :min-width="flexWidth('standing_time',crud.data,'困料时间')" />
+        <el-table-column prop="threshold_time" label="超时时间" :min-width="flexWidth('threshold_time',crud.data,'超时时间')" />
         <el-table-column prop="product_code" label="产品编号" :min-width="flexWidth('product_code',crud.data,'产品编号')" />
         <el-table-column prop="a" label="长边长度" :min-width="flexWidth('a',crud.data,'长边长度')" />
         <el-table-column prop="b" label="短边长度" :min-width="flexWidth('b',crud.data,'短边长度')" />
@@ -159,7 +236,14 @@ const defaultForm = {
   update_optname: null,
   update_time: null,
   weight: null,
-  material_type: '1'
+  material_type: '1',
+  order_code: null,
+  product_grade: null,
+  material_brick_type: null,
+  furnace: null,
+  qty: 0,
+  aux_qty: 0,
+  brick_type: null
 }
 export default {
   name: 'Materialbase',
diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/hl/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/hl/index.vue
index 382455c..3aa1789 100644
--- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/hl/index.vue
+++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/hl/index.vue
@@ -20,11 +20,11 @@
               @keyup.enter.native="crud.toQuery"
             />
           </el-form-item>
-          <el-form-item label="BOM编码">
+          <el-form-item label="物料编码">
             <el-input
               v-model="query.material"
               clearable
-              placeholder="BOM编码"
+              placeholder="物料编码"
               style="width: 200px;"
               @keyup.enter.native="crud.toQuery"
             />
@@ -103,7 +103,7 @@
               <el-form-item label="生产设备" prop="device_name">
                 <el-input
                   v-model="form.device_name"
-                  :disabled="crud.status.edit"
+                  :disabled="form.order_status > '1'"
                   style="width: 300px"
                   clearable
                   @focus="deviceShow=true"
@@ -114,13 +114,13 @@
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="BOM编码" prop="material_code">
+              <el-form-item label="物料编码" prop="material_code">
                 <el-input
                   v-model="form.material_code"
-                  :disabled="crud.status.edit"
+                  :disabled="form.order_status > '1'"
                   style="width: 300px"
                   clearable
-                  @focus="bomShow=true"
+                  @focus="materialShow=true"
                   @clear="form.material_id=''; form.material_code=''; form.material_name=''"
                 />
               </el-form-item>
@@ -129,7 +129,7 @@
           <el-row>
             <el-col :span="12">
               <el-form-item label="计划重量" prop="plan_qty">
-                <el-input v-model="form.plan_qty" :disabled="crud.status.edit" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">千克</i></el-input>
+                <el-input v-model="form.plan_qty" :disabled="form.order_status > '1'" type="number" style="width: 300px"><i slot="suffix" style="font-style:normal;margin-right: 10px;">千克</i></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -143,9 +143,9 @@
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="是否新料" prop="is_new">
-                <el-radio v-model="form.is_new" :disabled="crud.status.edit" label="1">是</el-radio>
-                <el-radio v-model="form.is_new" :disabled="crud.status.edit" label="0">否</el-radio>
+              <el-form-item label="是否正品料" prop="is_new">
+                <el-radio v-model="form.is_new" :disabled="form.order_status > '1'" label="1">是</el-radio>
+                <el-radio v-model="form.is_new" :disabled="form.order_status > '1'" label="0">否</el-radio>
               </el-form-item>
             </el-col>
           </el-row>
@@ -177,7 +177,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="device_name" label="设备" :min-width="flexWidth('device_name',crud.data,'设备')" />
-        <el-table-column prop="material_code" label="BOM编码" :min-width="flexWidth('material_code',crud.data,'BOM编码')" />
+        <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
         <el-table-column prop="plan_qty" label="计划重量" :min-width="flexWidth('plan_qty',crud.data,'计划数量/重量')" />
         <el-table-column prop="is_urgent" label="是否加急" :min-width="flexWidth('is_urgent',crud.data,'是否加急')">
           <template slot-scope="scope">
@@ -209,7 +209,7 @@
       <pagination />
     </div>
     <DeviceDialog :dialog-show.sync="deviceShow" :is-single="true" @tableChanged="tableChanged" />
-    <BOMDtl :dialog-show.sync="bomShow" :is-single="true" @setBOMValue="setBOMValue" />
+    <MaterDtl :dialog-show.sync="materialShow" :is-single="true" @setMaterValue="setMaterValue" />
     <ViewDialog ref="child3" />
     <!--表单组件-->
     <el-dialog
@@ -248,7 +248,7 @@ import udOperation from '@crud/UD.operation'
 import pagination from '@crud/Pagination'
 import ViewDialog from '@/views/wms/pdm/workerorder/ViewDialog'
 import DeviceDialog from '@/views/wms/pub/DeviceDialog'
-import BOMDtl from '@/views/wms/pub/BOMDialog.vue'
+import MaterDtl from '@/views/wms/pub/MaterDialog.vue'
 
 const defaultForm = {
   workorder_id: null,
@@ -299,7 +299,7 @@ const defaultForm = {
 }
 export default {
   name: 'HLWorkorder',
-  components: { BOMDtl, pagination, crudOperation, rrOperation, udOperation, ViewDialog, DeviceDialog },
+  components: { MaterDtl, pagination, crudOperation, rrOperation, udOperation, ViewDialog, DeviceDialog },
   mixins: [presenter(), header(), form(defaultForm), crud()],
   dicts: ['pdm_workorder_status', 'priority_direction', 'is_used', 'is_or_not', 'material_type', 'vehicle_type', 'workorder_procedure', 'true_or_false', 'wood_vehicle_type'],
   cruds() {
@@ -413,7 +413,7 @@ export default {
       this.form.device_name = row.device_name
       this.form.region_code = row.region_code
     },
-    setBOMValue(row) {
+    setMaterValue(row) {
       this.form.material_id = row.material_id
       this.form.material_code = row.material_code
     },
diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
index 38779a5..72ada97 100644
--- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
+++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
@@ -230,7 +230,7 @@
       <pagination />
     </div>
     <MaterDtl :dialog-show.sync="materialShow" :is-single="true" @setMaterValue="setMaterValue" />
-    <DeviceDialog :dialog-show.sync="deviceShow" :is-single="true" :region-str="'(\'YZ\', \'FJ\')'" @tableChanged="tableChanged" />
+    <DeviceDialog :dialog-show.sync="deviceShow" :is-single="true" :region-str="'(\'YZ\')'" @tableChanged="tableChanged" />
     <ViewDialog ref="child3" />
     <!--表单组件-->
     <el-dialog
diff --git a/lms/nladmin-ui/src/views/wms/pub/BOMDialog.vue b/lms/nladmin-ui/src/views/wms/pub/BOMDialog.vue
index 0ff811e..9e0a48b 100644
--- a/lms/nladmin-ui/src/views/wms/pub/BOMDialog.vue
+++ b/lms/nladmin-ui/src/views/wms/pub/BOMDialog.vue
@@ -78,7 +78,7 @@ export default {
       crudMethod: { ...crudMaterialbase },
       optShow: {},
       query: {
-        material_type: '2'
+        material_type: '1'
       }
     })
   },
diff --git a/lms/nladmin-ui/src/views/wms/pub/MaterDialog.vue b/lms/nladmin-ui/src/views/wms/pub/MaterDialog.vue
index 2c1bae4..2a993ea 100644
--- a/lms/nladmin-ui/src/views/wms/pub/MaterDialog.vue
+++ b/lms/nladmin-ui/src/views/wms/pub/MaterDialog.vue
@@ -23,6 +23,22 @@
           @keyup.enter.native="crud.toQuery"
         />
       </el-form-item>
+      <el-form-item label="订单编码">
+        <el-input
+          v-model="query.order_code"
+          clearable
+          placeholder="订单编码"
+          @keyup.enter.native="crud.toQuery"
+        />
+      </el-form-item>
+      <el-form-item label="部位">
+        <el-input
+          v-model="query.product_grade"
+          clearable
+          placeholder="部位"
+          @keyup.enter.native="crud.toQuery"
+        />
+      </el-form-item>
       <rrOperation />
     </el-form>
 
@@ -46,11 +62,9 @@
         </template>
       </el-table-column>
       <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
-      <el-table-column prop="product_code" label="产品编号" :min-width="flexWidth('product_code',crud.data,'产品编号')" />
-      <el-table-column prop="a" label="长边长度" :min-width="flexWidth('a',crud.data,'长边长度')" />
-      <el-table-column prop="b" label="短边长度" :min-width="flexWidth('b',crud.data,'短边长度')" />
-      <el-table-column prop="h" label="梯形高度" :min-width="flexWidth('w',crud.data,'梯形高度')" />
-      <el-table-column prop="w" label="砖块厚度" :min-width="flexWidth('h',crud.data,'砖块厚度')" />
+      <el-table-column prop="order_code" label="订单编码" :min-width="flexWidth('order_code',crud.data,'订单编码')" />
+      <el-table-column prop="product_grade" label="部位" :min-width="flexWidth('product_grade',crud.data,'部位')" />
+      <el-table-column prop="brick" label="砖型" :min-width="flexWidth('brick',crud.data,'砖型')" />
     </el-table>
     <!--分页组件-->
     <pagination />
diff --git a/lms/nladmin-ui/src/views/wms/sch/point/index.vue b/lms/nladmin-ui/src/views/wms/sch/point/index.vue
index 29b5727..9f40a2b 100644
--- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue
+++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue
@@ -265,7 +265,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
-        <el-table-column prop="material_code" label="物料编码/BOM编码" :min-width="flexWidth('material_code',crud.data,'物料编码/BOM编码')" />
+        <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
         <el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" show-overflow-tooltip />
         <el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
         <el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />