From f9f66b0528fbb59a2b66a039def0f67e346cd954 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Fri, 24 Mar 2023 16:57:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes/hd/nladmin-system/pom.xml | 6 + .../java/org/nl/config/DataBaseConfig.java | 72 ++++ .../main/java/org/nl/wms/WebServiceUtil.java | 9 +- .../master/rest/MaterialbaseController.java | 8 +- .../master/service/MaterialbaseService.java | 2 +- .../service/impl/MaterialbaseServiceImpl.java | 100 +++++- .../java/org/nl/wms/common/DataTypeEnum.java | 140 ++++++++ .../wms/ext/sap/rest/WmsToSapController.java | 57 ++++ .../wms/ext/sap/service/WmsToSapService.java | 42 +++ .../sap/service/impl/WmsToSapServiceImpl.java | 323 ++++++++++++++++++ .../main/java/org/nl/wms/ext/sap/wql/QERP.wql | 160 +++++++++ .../impl/DeliveryOrderServiceImpl.java | 2 + .../service/impl/SaleOrderServiceImpl.java | 2 + .../nl/wms/pcs/wql/PCS_DELIVERYORDER001.wql | 4 + .../org/nl/wms/pcs/wql/PCS_SALEORDER001.wql | 4 + .../src/main/java/org/nl/wms/pcs/wql/pcs.xls | Bin 291328 -> 292864 bytes .../sch/manage/AutoImportDeliverOrder.java | 22 ++ .../wms/sch/manage/AutoImportSaleOrder.java | 27 ++ mes/qd/src/api/wms/ext/sap.js | 27 ++ .../wms/basedata/master/material/Dialog.vue | 97 ++++++ .../wms/basedata/master/material/index.vue | 13 +- .../views/wms/pcs/deliveryorder/Dialog.vue | 93 +++++ .../src/views/wms/pcs/deliveryorder/index.vue | 145 +++++--- mes/qd/src/views/wms/pcs/saleorder/Dialog.vue | 93 +++++ mes/qd/src/views/wms/pcs/saleorder/index.vue | 47 ++- 25 files changed, 1423 insertions(+), 72 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/common/DataTypeEnum.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/WmsToSapController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/WmsToSapService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/WmsToSapServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/wql/QERP.wql create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportDeliverOrder.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportSaleOrder.java create mode 100644 mes/qd/src/api/wms/ext/sap.js create mode 100644 mes/qd/src/views/wms/basedata/master/material/Dialog.vue create mode 100644 mes/qd/src/views/wms/pcs/deliveryorder/Dialog.vue create mode 100644 mes/qd/src/views/wms/pcs/saleorder/Dialog.vue diff --git a/mes/hd/nladmin-system/pom.xml b/mes/hd/nladmin-system/pom.xml index 99d69a25..49633bea 100644 --- a/mes/hd/nladmin-system/pom.xml +++ b/mes/hd/nladmin-system/pom.xml @@ -232,6 +232,12 @@ ${mysql.version} + + com.oracle.database.jdbc + ojdbc5 + 11.2.0.4 + + com.microsoft.sqlserver mssql-jdbc diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java b/mes/hd/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java index 1bfb4c82..ae0b2ec5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java @@ -1,21 +1,93 @@ package org.nl.config; +import cn.hutool.core.util.StrUtil; import com.alibaba.druid.pool.DruidDataSource; import lombok.extern.slf4j.Slf4j; +import org.nl.wms.common.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.oracle.enabled}") + private boolean oracleIsConnect; + @Value("${erp.oracle.jdbcurl}") + private String oracleJdbcUrl; + @Value("${erp.oracle.username}") + private String oracleUserName; + @Value("${erp.oracle.password}") + private String oraclePassword; + @Primary @Bean(name = "dataSource") @ConfigurationProperties(prefix = "spring.datasource.druid") public DataSource dataSource() { return new DruidDataSource(); } + + @Bean(name = "dataSource1") + @ConditionalOnExpression("${erp.oracle.enabled:true}") + public DataSource dataSource1() { + System.out.println("是否连接oracle:"+oracleIsConnect); + System.out.println("erp.oracle.jdbcurl:"+oracleJdbcUrl); + System.out.println("erp.oracle.username:"+oracleUserName); + System.out.println("erp.oracle.password:"+oraclePassword); + log.info("是否连接oracle:"+oracleIsConnect); + log.info("erp.oracle.jdbcurl:"+oracleJdbcUrl); + log.info("erp.oracle.username:"+oracleUserName); + log.info("erp.oracle.password:"+oraclePassword); + + String jdbcUrl = oracleJdbcUrl; + String userName = oracleUserName; + String password =oraclePassword; + + 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/mes/hd/nladmin-system/src/main/java/org/nl/wms/WebServiceUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/WebServiceUtil.java index 77bbe228..be8c98e9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/WebServiceUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/WebServiceUtil.java @@ -1,6 +1,7 @@ package org.nl.wms; import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; import java.io.InputStream; @@ -17,6 +18,7 @@ import java.util.Map; * @author zds 2018-12-27 16:33:50 * */ +@Slf4j public class WebServiceUtil { /** * @@ -63,8 +65,8 @@ public class WebServiceUtil { int responseCode = connection.getResponseCode(); String ret="默认值"; - if(200 == responseCode){//表示服务端响应成功 - + if(200 == responseCode){//表示服务端响应成功 + log.info("请求成功!"); //获取当前连接请求返回的数据流 InputStream is = connection.getInputStream(); @@ -98,6 +100,7 @@ public class WebServiceUtil { connection.disconnect(); } os.close(); + log.info("返回参数ret为:"+ret); return ret; // return result; } @@ -127,7 +130,7 @@ public class WebServiceUtil { sb.append(""); sb.append(""); sb.append(""); - System.out.println("getXML发送数据-----------------"+sb.toString()); + log.info("getXML组织参数为-----------------"+sb.toString()); return sb.toString(); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/MaterialbaseController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/MaterialbaseController.java index f2de0baf..aac23bc7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/MaterialbaseController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/MaterialbaseController.java @@ -3,9 +3,10 @@ package org.nl.wms.basedata.master.rest; import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; @@ -90,9 +91,8 @@ public class MaterialbaseController { @Log("物料同步") @ApiOperation("物料同步") //@PreAuthorize("@el.check('materialtype:list')") - public ResponseEntity synchronize(@RequestBody Map whereJson) { - materialBaseService.synchronize(whereJson); - return new ResponseEntity<>(HttpStatus.OK); + public ResponseEntity synchronize(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(materialBaseService.synchronize(whereJson), HttpStatus.OK); } @Log("查询产品系列类型") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/MaterialbaseService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/MaterialbaseService.java index 2f01466b..50283c0e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/MaterialbaseService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/MaterialbaseService.java @@ -89,7 +89,7 @@ public interface MaterialbaseService { */ JSONObject getMaterOptType(String materOpt_code); - void synchronize(Map whereJson); + JSONObject synchronize(JSONObject whereJson); JSONArray getProductSeries(String parent_class_id); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java index 0329f2c9..58e8045b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java @@ -10,14 +10,16 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.json.XML; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; - import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.WebServiceUtil; import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.MaterialbaseService; @@ -213,9 +215,97 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { } @Override - public void synchronize(Map whereJson) { - /* wmsToErpService.getClassInfo(null); - wmsToErpService.getMaterialInfo(null);*/ + @Transactional(rollbackFor = Exception.class) + public JSONObject synchronize(JSONObject form) { + log.info("导入方法开始"); + JSONObject result = new JSONObject(); + + String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/z_sd0002_send_mat_md/800/z_sd0002_send_mat_md/binding"; + String method = "ZSd0002SendMatMd"; + String bill_code1 = form.getString("bill_code1"); + String bill_code2 = form.getString("bill_code2"); + HashMap map = new HashMap(); + map.put("MatnrFr", bill_code1); + map.put("MatnrTo", bill_code2); + //非必填字段 + JSONObject ZfmGetSoResponse = null; + try { + //String response = WebServiceUtil.process(url, method, map); + String response = "24026697L软管外丝直接\\C46500\\S3/16*1/4M\\URGJ00124TH2023-03-01KDEALBVGCXKDEALBVGCZ009M2401KG0.01.0KG20X24026697L201200PCNORM201224026697L204000PCNORM24026697L206000PCNORM206024026697L220000PCNORM24026697L201224026697L204024026697L206024026697L220024026697L0000000000077876000000000010S01CHAR300类别美标软管管件X24026697L0000000000077876000000000011S02CHAR300牌号C46500X24026697L0000000000077876000000000012S03CHAR300规格S3/16*1/4MX24026697L0000000000077876000000000014S05CHAR300形状软管外丝直接X24026697L0000000000077876000000000015S06CHAR300标准URGJX24026697L0000000000077876000000000016S07CHAR300图号URGJ00124THX24026697L0000000000077876000000000017S08CHAR300监管性质保税来料X24026697L0000000000077876000000000020S11CHAR300客户牌号(下单时输入)24026697L0000000000077876000000000019S10CHAR300附加说明(下单时输入)24026697L0000000000077876000000000102S13CHAR300铜管内部牌号黄铜管件-黄铜管件24026697LKG1124026697LPC19125024026697L2012101PC1000.024026697S0010PC1000.024026697L2012101PC1000.035000715L9000KG15.1724026697L2060101PC1000.024026697S0010KG15.1724026697L2060101PC1000.035000715L9000KG15.1724026697L2060501PC1.024026697S0010KG15.1724026697L2060501PC1.035000715L9000KG15.17I000共输出1 条物料数据000000"; + JSONObject ret = JSONObject.parseObject(XML.toJSONObject(response).toString()); + System.out.println("getXML返回数据-----------------" + ret.toString()); + JSONObject Envelope = ret.getJSONObject("soap-env:Envelope"); + JSONObject Body = Envelope.getJSONObject("soap-env:Body"); + ZfmGetSoResponse = Body.getJSONObject("n0:ZSd0002SendMatMdResponse"); + } catch (Exception e) { + e.printStackTrace(); + } + + JSONObject TZtsalesorder = ZfmGetSoResponse.getJSONObject("Out"); + JSONObject TMara = TZtsalesorder.getJSONObject("TMara"); + JSONArray rows = TMara.getJSONArray("item"); + + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String Matnr = row.getString("Matnr").replaceAll("^(0+)", ""); + //查询是否存在该物料 + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + Matnr + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + mater_jo = new JSONObject(); + mater_jo.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); + mater_jo.put("material_code", Matnr); + mater_jo.put("material_name", row.getString("Maktx")); + mater_jo.put("material_model", row.getString("Mtart")); + String unit_code = row.getString("Meins"); + JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit_jo)) { + throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code); + } + mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id")); + JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(class_jo)) { + throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart")); + } + mater_jo.put("material_type_id", class_jo.getString("class_id")); + mater_jo.put("create_id", SecurityUtils.getCurrentUserId()); + mater_jo.put("create_name", SecurityUtils.getCurrentNickName()); + mater_jo.put("create_time", DateUtil.now()); + mater_jo.put("update_optid", SecurityUtils.getCurrentUserId()); + mater_jo.put("update_optname", SecurityUtils.getCurrentNickName()); + mater_jo.put("update_time", DateUtil.now()); + mater_jo.put("is_used_time", DateUtil.now()); + mater_jo.put("is_used", "1"); + mater_jo.put("is_delete", "0"); + WQLObject.getWQLObject("md_me_materialbase").insert(mater_jo); + } else { + mater_jo.put("material_code", Matnr); + mater_jo.put("material_name", row.getString("Maktx")); + mater_jo.put("material_model", row.getString("Mtart")); + String unit_code = row.getString("Meins"); + JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit_jo)) { + throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code); + } + mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id")); + JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(class_jo)) { + throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart")); + } + mater_jo.put("material_type_id", class_jo.getString("class_id")); + mater_jo.put("create_id", SecurityUtils.getCurrentUserId()); + mater_jo.put("create_name", SecurityUtils.getCurrentNickName()); + mater_jo.put("create_time", DateUtil.now()); + mater_jo.put("update_optid", SecurityUtils.getCurrentUserId()); + mater_jo.put("update_optname", SecurityUtils.getCurrentNickName()); + mater_jo.put("update_time", DateUtil.now()); + mater_jo.put("is_used_time", DateUtil.now()); + mater_jo.put("is_used", "1"); + mater_jo.put("is_delete", "0"); + WQLObject.getWQLObject("md_me_materialbase").update(mater_jo); + } + } + result.put("message", "导入成功!一共导入:" + rows.size() + "条数据!"); + return new JSONObject(); } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/common/DataTypeEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/common/DataTypeEnum.java new file mode 100644 index 00000000..8a8f8e8b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/common/DataTypeEnum.java @@ -0,0 +1,140 @@ +/* + * << + * Davinci + * == + * Copyright (C) 2016 - 2019 EDP + * == + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * >> + * + */ + +package org.nl.wms.common; +import lombok.extern.slf4j.Slf4j; + +/** + * @author / + */ +@Slf4j +@SuppressWarnings({"unchecked","all"}) +public enum DataTypeEnum { + + /** mysql */ + MYSQL("mysql", "mysql", "com.mysql.jdbc.Driver", "`", "`", "'", "'"), + + /** oracle */ + ORACLE("oracle", "oracle", "oracle.jdbc.driver.OracleDriver", "\"", "\"", "\"", "\""), + + /** sql server */ + SQLSERVER("sqlserver", "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "\"", "\"", "\"", "\""), + + /** h2 */ + H2("h2", "h2", "org.h2.Driver", "`", "`", "\"", "\""), + + /** phoenix */ + PHOENIX("phoenix", "hbase phoenix", "org.apache.phoenix.jdbc.PhoenixDriver", "", "", "\"", "\""), + + /** mongo */ + MONGODB("mongo", "mongodb", "mongodb.jdbc.MongoDriver", "`", "`", "\"", "\""), + + /** sql4es */ + ELASTICSEARCH("sql4es", "elasticsearch", "nl.anchormen.sql4es.jdbc.ESDriver", "", "", "'", "'"), + + /** presto */ + PRESTO("presto", "presto", "com.facebook.presto.jdbc.PrestoDriver", "", "", "\"", "\""), + + /** moonbox */ + MOONBOX("moonbox", "moonbox", "moonbox.jdbc.MbDriver", "`", "`", "`", "`"), + + /** cassandra */ + CASSANDRA("cassandra", "cassandra", "com.github.adejanovski.cassandra.jdbc.CassandraDriver", "", "", "'", "'"), + + /** click house */ + CLICKHOUSE("clickhouse", "clickhouse", "ru.yandex.clickhouse.ClickHouseDriver", "", "", "\"", "\""), + + /** kylin */ + KYLIN("kylin", "kylin", "org.apache.kylin.jdbc.Driver", "\"", "\"", "\"", "\""), + + /** vertica */ + VERTICA("vertica", "vertica", "com.vertica.jdbc.Driver", "", "", "'", "'"), + + /** sap */ + HANA("sap", "sap hana", "com.sap.db.jdbc.Driver", "", "", "'", "'"), + + /** impala */ + IMPALA("impala", "impala", "com.cloudera.impala.jdbc41.Driver", "", "", "'", "'"); + + private String feature; + private String desc; + private String driver; + private String keywordPrefix; + private String keywordSuffix; + private String aliasPrefix; + private String aliasSuffix; + + private static final String JDBC_URL_PREFIX = "jdbc:"; + + DataTypeEnum(String feature, String desc, String driver, String keywordPrefix, String keywordSuffix, String aliasPrefix, String aliasSuffix) { + this.feature = feature; + this.desc = desc; + this.driver = driver; + this.keywordPrefix = keywordPrefix; + this.keywordSuffix = keywordSuffix; + this.aliasPrefix = aliasPrefix; + this.aliasSuffix = aliasSuffix; + } + + public static DataTypeEnum urlOf(String jdbcUrl) { + String url = jdbcUrl.toLowerCase().trim(); + for (DataTypeEnum dataTypeEnum : values()) { + if (url.startsWith(JDBC_URL_PREFIX + dataTypeEnum.feature)) { + try { + Class aClass = Class.forName(dataTypeEnum.getDriver()); + if (null == aClass) { + throw new RuntimeException("Unable to get driver instance for jdbcUrl: " + jdbcUrl); + } + } catch (ClassNotFoundException e) { + throw new RuntimeException("Unable to get driver instance: " + jdbcUrl); + } + return dataTypeEnum; + } + } + return null; + } + + public String getFeature() { + return feature; + } + + public String getDesc() { + return desc; + } + + public String getDriver() { + return driver; + } + + public String getKeywordPrefix() { + return keywordPrefix; + } + + public String getKeywordSuffix() { + return keywordSuffix; + } + + public String getAliasPrefix() { + return aliasPrefix; + } + + public String getAliasSuffix() { + return aliasSuffix; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/WmsToSapController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/WmsToSapController.java new file mode 100644 index 00000000..1e846f08 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/WmsToSapController.java @@ -0,0 +1,57 @@ + +package org.nl.wms.ext.sap.rest; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.ext.sap.service.WmsToSapService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author zhouz + * @date 2021-07-21 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "wms发送sap") +@RequestMapping("/api/sap/") +@Slf4j +public class WmsToSapController { + private final WmsToSapService wmsToSapService; + + @PostMapping("/getMater") + @Log("获取物料基础信息") + @ApiOperation("获取物料基础信息") + public ResponseEntity getMater(@RequestBody JSONObject form) { + return new ResponseEntity<>(wmsToSapService.getMater(form), HttpStatus.OK); + } + + @PostMapping("/getSaleOrder") + @Log("获取销售订单") + @ApiOperation("获取销售订单") + public ResponseEntity getSaleOrder(@RequestBody JSONObject form) { + return new ResponseEntity<>(wmsToSapService.getSaleOrder(form), HttpStatus.OK); + } + + @PostMapping("/getDeliveryNote") + @Log("获取物料基础信息") + @ApiOperation("获取物料基础信息") + public ResponseEntity getDeliveryNote(@RequestBody JSONObject form) { + return new ResponseEntity<>(wmsToSapService.getDeliveryNote(form), HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/WmsToSapService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/WmsToSapService.java new file mode 100644 index 00000000..af616dfd --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/WmsToSapService.java @@ -0,0 +1,42 @@ +package org.nl.wms.ext.sap.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import java.util.Map; + +/** + * + */ +public interface WmsToSapService { + /** + * WMS客户端--->SAP服务端 + * 获取物料信息 + * + * @param form + * @return JSONObject + */ + + JSONObject getMater(JSONObject form); + + /** + * WMS客户端--->SAP服务端 + * 获取销售订单 + * + * @param form + * @return JSONObject + */ + + JSONObject getSaleOrder(JSONObject form); + + /** + * WMS客户端--->SAP服务端 + * 获取交货单 + * + * @param form + * @return JSONObject + */ + + JSONObject getDeliveryNote(JSONObject form); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/WmsToSapServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/WmsToSapServiceImpl.java new file mode 100644 index 00000000..d54eac76 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/WmsToSapServiceImpl.java @@ -0,0 +1,323 @@ +package org.nl.wms.ext.sap.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.util.StringUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.json.XML; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.exception.WDKException; +import org.nl.wms.WebServiceUtil; +import org.nl.wms.ext.sap.service.WmsToSapService; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; + +@Service +@RequiredArgsConstructor +@Slf4j +public class WmsToSapServiceImpl implements WmsToSapService { + + @Override + public JSONObject getMater(JSONObject form) { + return null; + } + + public static String getDateStr(int day) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Date todayDate = new Date(); + long beforeTime = (todayDate.getTime() / 1000) - 60 * 60 * 24 * day; + todayDate.setTime(beforeTime * 1000); + String beforeDate = formatter.format(todayDate); + return beforeDate; + } + + @Override + public JSONObject getSaleOrder(JSONObject form) { + log.info("导入方法开始"); + JSONObject result = new JSONObject(); + + String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding"; + String method = "ZfmGetSo"; + + if (StrUtil.equals(form.getString("is_auto"), "1")) { + form.put("IErdatFrm", getDateStr(1)); + form.put("IErdatTo", getDateStr(0)); + form.put("IVbeln", ""); // 非必填字段 + } + + String bill_code = form.getString("bill_code"); + String date_begin = form.getString("date_begin"); + String date_end = form.getString("date_end"); + + HashMap map = new HashMap<>(); + map.put("IVbeln", ""); + map.put("IErdatFrm", ""); + map.put("IErdatTo", ""); + if (StrUtil.isNotEmpty(bill_code)) { + map.put("IVbeln", bill_code); + } + if (StrUtil.isNotEmpty(date_begin)) { + map.put("IErdatFrm", date_begin); + } + if (StrUtil.isNotEmpty(date_end)) { + map.put("IErdatTo", date_end); + } + + JSONObject ZfmGetSoResponse = null; + try { + String response = WebServiceUtil.process(url, method, map); + JSONObject ret = JSONObject.parseObject(XML.toJSONObject(response).toString()); + log.info("getXML发送数据-----------------" + ret.toString()); + JSONObject Envelope = ret.getJSONObject("soap-env:Envelope"); + JSONObject Body = Envelope.getJSONObject("soap-env:Body"); + ZfmGetSoResponse = Body.getJSONObject("n0:ZfmGetSoResponse"); + String check = ZfmGetSoResponse.getString("OResultcode"); + if ("1005".equals(check)) { + System.out.println(ZfmGetSoResponse.getString("OResultmsg")); + throw new BadRequestException("sap返回:" + ZfmGetSoResponse.getString("OResultmsg")); + } else if (!"1000".equals(check)) { + throw new BadRequestException("sap返回:" + ZfmGetSoResponse.getString("OResultmsg")); + } + } catch (Exception e) { + e.printStackTrace(); + } + + JSONObject TZtsalesorder = ZfmGetSoResponse.getJSONObject("TZtsalesorder"); + log.info("TZtsalesorder为:" + TZtsalesorder.toString()); + JSONArray item = TZtsalesorder.getJSONArray("item"); + + if (TZtsalesorder == null || item == null || item.size() == 0) { + result.put("message", "sap无可同步数据"); + return result; + } + + int err_num = 0; + for (int i = 0; i < item.size(); i++) { + JSONObject row = item.getJSONObject(i); + boolean need_update = false; + JSONObject sale_jo = WQLObject.getWQLObject("pcs_sale_order").query("sale_code = '" + row.getString("Vbeln") + "' AND seq_no = '" + row.getString("Posnr") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sale_jo)) { + sale_jo = new JSONObject(); + sale_jo.put("sale_id", IdUtil.getSnowflake(1, 1).nextId()); + } else { + need_update = true; + if (!sale_jo.getString("status").equals("10")) { + continue; + } + } + sale_jo.put("is_success", "1"); + sale_jo.put("sale_code", row.getString("Vbeln")); + sale_jo.put("seq_no", row.getString("Posnr")); + sale_jo.put("sale_type", row.getString("Auart")); + String material_code = row.getString("Matnr").replaceAll("^(0+)", ""); + //获取物料对应的物料标识 + JSONObject mater_jo = WQLObject.getWQLObject("MD_ME_MaterialBase").query("material_code = '" + material_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + sale_jo.put("material_id", "0"); + sale_jo.put("is_success", "0"); + sale_jo.put("remark", "未查询到该销售订单对应的物料主数据:" + material_code); + err_num++; + } else { + String material_id = mater_jo.getString("material_id"); + sale_jo.put("material_id", material_id); + } + sale_jo.put("status", "10"); + sale_jo.put("sale_qty", row.getString("Kwmeng")); + sale_jo.put("produce_seq", "1"); + String cust_code = row.getString("Kunnr"); + JSONObject cust_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + cust_code + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(cust_jo)) { + sale_jo.put("cust_id", cust_jo.getString("cust_id")); + sale_jo.put("cust_code", cust_jo.getString("cust_code")); + sale_jo.put("cust_name", cust_jo.getString("cust_name")); + } else { + sale_jo.put("is_success", "0"); + sale_jo.put("remark", "未查询到该销售订单对应的客户信息:" + cust_code); + err_num++; + } + String unit_code = row.getString("Vrkme"); + JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit_jo)) { + sale_jo.put("qty_unit_id", "0"); + sale_jo.put("remark", "未查询到该销售订单对应的单位信息:" + unit_code); + err_num++; + } else { + sale_jo.put("qty_unit_id", unit_jo.getString("measure_unit_id")); + } + sale_jo.put("plandeliver_date", row.getString("Edaut")); + sale_jo.put("create_id", SecurityUtils.getCurrentUserId()); + sale_jo.put("create_name", SecurityUtils.getCurrentNickName()); + sale_jo.put("create_time", DateUtil.now()); + sale_jo.put("update_optid", SecurityUtils.getCurrentUserId()); + sale_jo.put("update_optname", SecurityUtils.getCurrentNickName()); + sale_jo.put("update_time", DateUtil.now()); + + if (need_update) { + WQLObject.getWQLObject("pcs_sale_order").update(sale_jo); + } else { + WQLObject.getWQLObject("pcs_sale_order").insert(sale_jo); + } + + + } + if (err_num > 0) { + result.put("message", "导入成功!一共导入:" + item.size() + "条数据,其中有误数据:" + err_num + "条!"); + } else { + result.put("message", "导入成功!一共导入:" + item.size() + "条数据!"); + } + return result; + } + + @Override + public JSONObject getDeliveryNote(JSONObject form) { + JSONObject result = new JSONObject(); + + String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding"; + String method = "ZfmGetDnZjwl"; + + if (StrUtil.equals(form.getString("is_auto"), "1")) { + form.put("IErdatFrm", getDateStr(1)); + form.put("IErdatTo", getDateStr(0)); + form.put("IVbeln", ""); // 非必填字段 + } + + String bill_code = form.getString("bill_code"); + String date_begin = form.getString("date_begin"); + String date_end = form.getString("date_end"); + HashMap map = new HashMap<>(); + map.put("IVbeln", ""); + map.put("IErdatFrm", ""); + map.put("IErdatTo", ""); + if (StrUtil.isNotEmpty(bill_code)) { + map.put("IVbeln", bill_code); + } + if (StrUtil.isNotEmpty(date_begin)) { + map.put("IErdatFrm", date_begin); + } + if (StrUtil.isNotEmpty(date_end)) { + map.put("IErdatTo", date_end); + } + + JSONObject ZfmGetSoResponse = null; + try { + String response = WebServiceUtil.process(url, method, map); + JSONObject ret = JSONObject.parseObject(XML.toJSONObject(response).toString()); + log.info("getXML发送数据-----------------" + ret.toString()); + JSONObject Envelope = ret.getJSONObject("soap-env:Envelope"); + JSONObject Body = Envelope.getJSONObject("soap-env:Body"); + ZfmGetSoResponse = Body.getJSONObject("n0:ZfmGetDnZjwlResponse"); + String check = ZfmGetSoResponse.getString("OResultcode"); + if ("1005".equals(check)) { + System.out.println(ZfmGetSoResponse.getString("OResultmsg")); + throw new BadRequestException("sap返回:" + ZfmGetSoResponse.getString("OResultmsg")); + } else if (!"1000".equals(check)) { + throw new BadRequestException("sap返回:" + ZfmGetSoResponse.getString("OResultmsg")); + } + } catch (Exception e) { + e.printStackTrace(); + } + + log.info(ZfmGetSoResponse.toString()); + JSONObject TZtsalesorder = ZfmGetSoResponse.getJSONObject("TZtdn"); + log.info("TZtsalesorder数据为:-------------------" + TZtsalesorder.toString()); + JSONArray item = TZtsalesorder.getJSONArray("item"); + log.info(item.size() + ""); + + if (TZtsalesorder == null || item == null || item.size() == 0) { + result.put("message", "sap无可同步数据"); + return result; + } + + int err_num = 0; + for (int i = 0; i < item.size(); i++) { + boolean need_update = false; + JSONObject row = item.getJSONObject(i); + JSONObject deliver_jo = WQLObject.getWQLObject("pcs_delivery_order").query("deliver_code = '" + row.getString("Vbeln") + "' AND seq_no = '" + row.getString("Posnr") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(deliver_jo)) { + deliver_jo = new JSONObject(); + deliver_jo.put("deliver_id", IdUtil.getSnowflake(1, 1).nextId()); + } else { + need_update = true; + if (!deliver_jo.getString("status").equals("10")) { + continue; + } + } + deliver_jo.put("deliver_code", row.getString("Vbeln")); + deliver_jo.put("seq_no", row.getString("Posnr")); + deliver_jo.put("deliver_type", row.getString("Lfart")); + String material_code = row.getString("Matnr").replaceAll("^(0+)", ""); + //获取物料对应的物料标识 + JSONObject mater_jo = WQLObject.getWQLObject("MD_ME_MaterialBase").query("material_code = '" + material_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + deliver_jo.put("material_id", "0"); + deliver_jo.put("is_success", "0"); + deliver_jo.put("remark", "未查询到该交货单对应的物料主数据:" + material_code); + err_num++; + } else { + String material_id = mater_jo.getString("material_id"); + deliver_jo.put("material_id", material_id); + } + deliver_jo.put("status", "10"); + deliver_jo.put("delivery_qty", row.getString("Lfimg")); + String cust_code = row.getString("Kunnr"); + JSONObject cust_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + cust_code + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(cust_jo)) { + deliver_jo.put("cust_id", cust_jo.getString("cust_id")); + deliver_jo.put("cust_code", cust_jo.getString("cust_code")); + deliver_jo.put("cust_name", cust_jo.getString("cust_name")); + } else { + deliver_jo.put("is_success", "0"); + deliver_jo.put("remark", "未查询到该交货单对应的客户信息:" + cust_code); + err_num++; + } + String unit_code = row.getString("Vrkme"); + JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit_jo)) { + deliver_jo.put("qty_unit_id", "0"); + deliver_jo.put("remark", "未查询到该交货单对应的单位信息:" + unit_code); + err_num++; + } else { + deliver_jo.put("qty_unit_id", unit_jo.getString("measure_unit_id")); + } + String sale_code = row.getString("Vgbel"); + String seq_no = row.getString("Vgpos"); + JSONObject sale_jo = WQLObject.getWQLObject("pcs_sale_order").query("sale_code = '" + sale_code + "' AND seq_no = '" + seq_no + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sale_jo)) { + deliver_jo.put("remark", "未查询到该交货单对应的销售订单:" + unit_code + "行号为:" + seq_no); + deliver_jo.put("is_success", "0"); + } else { + deliver_jo.put("sale_id", sale_jo.getString("sale_id")); + deliver_jo.put("sale_code", sale_jo.getString("sale_code")); + deliver_jo.put("sale_seq_no", sale_jo.getString("seq_no")); + } + deliver_jo.put("create_id", SecurityUtils.getCurrentUserId()); + deliver_jo.put("create_name", SecurityUtils.getCurrentNickName()); + deliver_jo.put("create_time", DateUtil.now()); + deliver_jo.put("update_optid", SecurityUtils.getCurrentUserId()); + deliver_jo.put("update_optname", SecurityUtils.getCurrentNickName()); + deliver_jo.put("update_time", DateUtil.now()); + if (need_update) { + WQLObject.getWQLObject("pcs_delivery_order").update(deliver_jo); + } else { + WQLObject.getWQLObject("pcs_delivery_order").insert(deliver_jo); + } + } + if (err_num > 0) { + result.put("message", "导入成功!一共导入:" + item.size() + "条数据,其中有误数据:" + err_num + "条!"); + } else { + result.put("message", "导入成功!一共导入:" + item.size() + "条数据!"); + } + return result; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/wql/QERP.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/wql/QERP.wql new file mode 100644 index 00000000..01464b6b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/sap/wql/QERP.wql @@ -0,0 +1,160 @@ +[交易说明] + 交易名: 库区分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + + + 输入.flag TYPEAS s_string + 输入.import_date1 TYPEAS s_string + 输入.import_date2 TYPEAS s_string + 输入.import_date3 TYPEAS s_string + 输入.import_date4 TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.end_time TYPEAS s_string + + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + mater.* + FROM + V_SAP_ORG mater + WHERE 1=1 + OPTION 输入.import_date3 <> "" + (pp.UPDATED_DATE > to_date(输入.import_date3,'yyyy-mm-dd HH24:MI:SS') + OR + pp.CREATE_DATE > to_date(输入.import_date3,'yyyy-mm-dd HH24:MI:SS') + ) + ENDOPTION + OPTION 输入.begin_time <> "" + mater.EDIT_TIME >= to_date(输入.begin_time,'yyyy-mm-dd HH24:MI:SS') + ENDOPTION + OPTION 输入.end_time <> "" + mater.EDIT_TIME <= to_date(输入.end_time,'yyyy-mm-dd HH24:MI:SS') + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT + * + FROM + ITEM + WHERE + (UPDATED_DATE > to_date(输入.import_date2,'yyyy-mm-dd HH24:MI:SS') + OR + CREATE_DATE > to_date(输入.import_date2,'yyyy-mm-dd HH24:MI:SS') + ) + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + pp.* + FROM + PURCHASE pp + WHERE 1=1 + OPTION 输入.import_date3 <> "" + (pp.UPDATED_DATE > to_date(输入.import_date3,'yyyy-mm-dd HH24:MI:SS') + OR + pp.CREATE_DATE > to_date(输入.import_date3,'yyyy-mm-dd HH24:MI:SS') + ) + ENDOPTION + OPTION 输入.begin_time <> "" + pp.CREATE_DATE >= to_date(输入.begin_time,'yyyy-mm-dd HH24:MI:SS') + ENDOPTION + OPTION 输入.end_time <> "" + pp.CREATE_DATE <= to_date(输入.end_time,'yyyy-mm-dd HH24:MI:SS') + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + pp.* + FROM + SALE_OUT pp + WHERE 1=1 + + OPTION 输入.begin_time <> "" + pp.dbilldate >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + pp.dbilldate <= 输入.end_time + ENDOPTION + OPTION 输入.fbillflag <> "" + pp.fbillflag = 输入.fbillflag + ENDOPTION + OPTION 输入.vbillcode <> "" + pp.vbillcode like 输入.vbillcode + ENDOPTION + OPTION 输入.cmaterialvid <> "" + pp.cmaterialvid = 输入.cmaterialvid + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + pp.* + FROM + PURCHASE_IN pp + WHERE 1=1 + OPTION 输入.import_date4 <> "" + pp.CREATIONTIME > 输入.import_date4 + ENDOPTION + OPTION 输入.begin_time <> "" + pp.CREATIONTIME >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + pp.CREATIONTIME <= 输入.end_time + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/DeliveryOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/DeliveryOrderServiceImpl.java index f9e5707d..02f6cbb5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/DeliveryOrderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/DeliveryOrderServiceImpl.java @@ -50,12 +50,14 @@ public class DeliveryOrderServiceImpl implements DeliveryOrderService { String begin_time = MapUtil.getStr(whereJson, "begin_time"); String end_time = MapUtil.getStr(whereJson, "end_time"); String status = MapUtil.getStr(whereJson, "status"); + String is_success = MapUtil.getStr(whereJson, "is_success"); String product_series = ""; HashMap map = new HashMap<>(); map.put("flag", "1"); map.put("begin_time", begin_time); map.put("end_time", end_time); map.put("status", status); + map.put("is_success", is_success); if (StrUtil.isNotEmpty(material)) { map.put("material", "%" + material + "%"); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/SaleOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/SaleOrderServiceImpl.java index e029b405..c9a0fc08 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/SaleOrderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/SaleOrderServiceImpl.java @@ -50,12 +50,14 @@ public class SaleOrderServiceImpl implements SaleOrderService { String begin_time = MapUtil.getStr(whereJson, "begin_time"); String end_time = MapUtil.getStr(whereJson, "end_time"); String status = MapUtil.getStr(whereJson, "status"); + String is_success = MapUtil.getStr(whereJson, "is_success"); String product_series = ""; HashMap map = new HashMap<>(); map.put("flag", "1"); map.put("begin_time", begin_time); map.put("end_time", end_time); map.put("status", status); + map.put("is_success", is_success); if (StrUtil.isNotEmpty(sale_code)) { map.put("sale_code", "%" + sale_code + "%"); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_DELIVERYORDER001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_DELIVERYORDER001.wql index 25c25dc8..998d8866 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_DELIVERYORDER001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_DELIVERYORDER001.wql @@ -18,6 +18,7 @@ 输入.material TYPEAS s_string 输入.product_series TYPEAS f_string 输入.status TYPEAS s_string + 输入.is_success TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string @@ -62,6 +63,9 @@ OPTION 输入.status <> "" deliveryorder.status = 输入.status ENDOPTION + OPTION 输入.is_success <> "" + deliveryorder.is_success = 输入.is_success + ENDOPTION OPTION 输入.product_series <> "" material.product_series in 输入.product_series ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_SALEORDER001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_SALEORDER001.wql index 7447c5d4..d505c657 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_SALEORDER001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/PCS_SALEORDER001.wql @@ -18,6 +18,7 @@ 输入.material TYPEAS s_string 输入.product_series TYPEAS f_string 输入.status TYPEAS s_string + 输入.is_success TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string @@ -62,6 +63,9 @@ OPTION 输入.status <> "" saleorder.status = 输入.status ENDOPTION + OPTION 输入.is_success <> "" + saleorder.is_success = 输入.is_success + ENDOPTION OPTION 输入.product_series <> "" material.product_series in 输入.product_series ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/pcs.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/pcs.xls index 04d430dbd03187a8d0940ec39b0b3eba537ae5d8..50e861b1b055b578bbc5a5e1149855c3a056c381 100644 GIT binary patch delta 18755 zcmeHv30PA{*YKH}o3KdOcTqx+RRSRp2v#&K0aO$b+;L$Ef&yW4UlO-!>xQO!wXKSF z(Q0i~tm)=f+q%`dFK-u@x>VoR*4A3vTFZClCL|K*_x{iS{Qvv@&+~uWXYRRkX6BqT zXU?2CGxr9=O%KC;kDV+-o^KH{^NBEo0a#*OCb;DGKz-_J;hM`teQrXpo@4%DY+x4( zK4AsM$LvJc_{Ic8k-=WmDKs_+-w`_l4APZUX(OsC%NvdHqEh2p(F6hHFKA&Lq{0A( zAxlOVaczhj?$NSTg-$$98ZS>8pW_O`&ySdW)Axfu3>AG0b z@-XfwF)EebMxw|y?u*Z98K}6!=);f#0V#mWgQz8H%pH_mLyej7ksa`{eEp92zKFlh zcmhnb&=EQDbj06v5c9N#q^Kd{j#MNaH3vw{hPP?%DZCz4ZBw14po8ikL(C#{%5>~@(2I}t{?=4MXfL>L~ARw8VxytMz;blme05k_F-la<4R4i@wW_jW~S|N zmhEx2`7tlootZ<7*RwMiJp~EIPjcOf!T7_#I3uTaCv&Y&^UP1l?qoi8r>k*8raM_= zY#Jmn>Ib=##nz|itWQhmlV=*tc0@6)e@o5Wmf5&1xAItFeQLrdS0x&N~O&|5j& z|0hC*?fKAg(e-Hy-}qR*bjz0`7oBc}PZ3Y0GXIU~r%nyLzaMe-HDAWXqwQ}cKG4Y{ zJKzp+au$|iefVn{*)i8dRZ>E9){xBncY8iw?j067Z?|S~ zr1!hWG-)TJ&*#6?w^?0rE0QysH*&Vk2Q);((4B>(oH z?(-w58y{VHbY+CJUNCqDY#Qlv|HbH)gGTq5yzTLx#bIux(naIncKL1aXCIyR@J*?D zuJ_kFebC1bMsr%XOfIxKdNzZes^=XrW54{|wddi(hfm)<;P%te&}A$4sLo1VUUD4~Q}Obu0{QO2 zk?Q);fevHKTAp*cy}QhF!<6{?^77aHD;=WCRz z&D>WA72N%~5i$DJI?L#ASS9xYH zTJ349t8DuHq2GhIH}oF&__rqy>t!GI*QYhCG>u%yL0C0`{+l<{L%#T`Ve{0rKgOC2TMt|HGyVEp{qq;D_Sb^v&(GPLI(zkZPo{3ZJv!lo zdyXrHY>>S_{lbc*RU_HqGspZkWPj_Tqu)3rUr}ApesDYZ!b=~%GWF}pCtv!0`N=bn zPJFqkPuG4It~|c-_6c3^sdeWcC`}>18n3)N(v1ZnU1{UW!wcO@HV!f7ZSmJPjBA)&TB>bm zAn24tkc{Q#zgFnQI70RmKs>-DgfAofeFngO79eRRz+;5(Ae@1GVrBvSgzz!KgXpG0 z<^bGwKsSYO0XnoI3}8Z>0G=TH2;m|FKrXr#eaKv_hz~y?Z0Q29ZXUo`QcNA(hhP}Z68EXI>B>*oXRHMfJLij4e=^Q{XdfY<@ zCm`Is79fW~bzEDA4bhXn_#!qyl{USE(xNKWsPEedUs?~4hN?Wc0f4RzYc~S)K@~pR zjA}>CeY^=^B5Lm9W`J3!u~6i83^m5Q2Cx-1^*zE>sHwy)C^TwFwiVzUYUClpmxf}1 z=eiAG52{AE9W{WenfE3@Bx>ZD9T=`4G`s~6jvDdZ3Gg9mM6?UwP1K0nZXAEqh<6LX z`>2unJplfwiC^Do(S7iiX!EC{mTn*25bXZUk#YYP%HJxPQI&FK^}6&w)?e<<#Rn3J zC-xfRFa;a|(44>p>2qV>OM{8Z*mNo1RYeG{Py|?@jg5bNp3e34BMy!PoUk_l#%E4- zi&CK`@sGFxGQp~J`_dkV#z=9-xu?8R+n1oOI@CtJb-ZdG z*I|1+%{c<4L3LTE$8kX?fJ8({q>!|~%tX*!JCqb!h)}f`62?Nq!XFuW*oz#x(1Q%tYK+fA!=-El_m`-pq3x)jiUO1(+=c8&UdA&QdWwhH@?^Nt>0&b8(=PguA;#esCB`imRmQ0o z<=o&f;%j_(F;mq2G(hY{+oVQ0#MiqKhgFxAs3CM_=BW&`aglMtD?sFiOo7ik<1m*S z`(F$FxFg7@M%94XiG6p^}UxP>?VoOT++^2P-Dj0?Qqm??Qtk&2OPTJ z4mfnhHk{t#k^3+ zI!)|J_;iB9)qtn4>4v=K?|kx-@d@?>zrXEp?cYmVhErM=0*}1o)}#t+O;uCzEq0aV@kfv zu*2-`fMLF}ZwWzK}66eZ)VC-}U;P7{LK4_7q#l_}SSX}j7gM{?N9~7FARQb+XFlcsx=XRsq`ga_5gv`W?0Z2YF4~KqI`jgA(hjw0#AQ!`MqHFa z+D)%K+k(*M!bTI?rp<*Fk+y3L&SqMNy0Ec?(x7#y3mZq;uJJ9e+!QdRf6JEJ$DDBW ztGjPM+EO#`cFRy`Cpa2qP#F*1_p)2|!p$WuckiDUI25@Nkb4lL`cfVrM-ONj_wY`L zzFcUtW-8(B0Gl;4xa8h;x8()sF%$4SiCQSNemXk>d~D@(c9eVC@^p3tJT+S!P|n** zTe%}R`hvmDhCpLBPap0xKaxGVqsEKL3&@*BqqJr*vA>+GdM_cLT58f>l@PnjRO3&+ zBVFcs;j4)t0zJCf6q9d`MYzzeBnfw6sQ;&85vr1PPj!*1q{Y|P1Kdfst4~!>j@wbX zQc;yz9R%iqq0oQZGNPj;O^e)M<$TAtAZ=)PG*uy?s9kBjZNfYf=M2NS-~U&!9g=%C44T2f=S#` z3aYr%5)w+PxnIn{KZMWqHiPjL)Nl(ZsN%Mok)N5teKYWu@>Nt6RB=TVRC5M1c-35X zl!8+3dkV@p_fQ@rn!yM&m}LgdX7F(+`bXXu+IcdIFXVE2kYFTL)q^M1M1hvu(}Vo# zwOUP}u9iT<76N1L5iqih&D9ylJrtS7hLdkXLR#4ER{upkL%I8Q>*S=9yPPY|K^_6z zTnfs$O*tf+xkk8u=8!2w#TEA>UUs`Yx&i~S`6@bz`4AVYukS}9?2L{sxAxU}KVV0K zKgvK7q<;sFbiK7FK?5?xajE@D1eLeEKbc~uM7rqFDnB7byCS+q(V~C>BrHltFfc+> zW6^05(2>8rO!`uCmzV|*BqCpI<%6!0w(|bht*(08?ZZOM0<>G~=%CwollPT&nxYG! zeLdVncEHi)&|1&cvge90Bf0OUkqFDc8ps;n6GuN)zYRyX*i=!^OgF2!Y&r?oN_epi z|YGT z+w;i17{;4$8{WqC5lwAp2gB&kb5L&CqAk>K&N)pMCW)m(Qb z*kfH68=3}S>$qL+%v9l1-MT-Ek=Yu3;UqG&SwXW{LzTm&X9cE7gzh+d*=Y?|^yAx5t@he0yA^c{sRY zBwBCj0fZ6tqpO}6;U(^_U-j<@+hm0&1~PpriP zroP2YaFe4jXO1v%_!kCF3Iw)g3?ufvVv}nkDR5cyIpg1N5wcy3={Zb)wYIjdLbw#u zGEB=ct-wS-omq*=h^aeT*$W6)V_JhL2=i+ZZsCeQXL^cX#mCn$y^e`9t^1tu5}59@ zM8}%mJj0wPXn?lR-)w*@&+!ImLz@lo&^e|rk#poc!!JeA=Nal}2$ zsihNT05FhL9%nXDT)ECOZ7Ww>k!3mM0xmFHy2kRg>Cpj@K%T-uV#fJ#Aw=L6L?b>R z{9AW8Xz|x{=LiJni}OV$oSQP8xRM~=wN=vH9gr9cA+vY4tdu;i?d<|Rg9q}gwVrJb zM4*P-7Sexd$d);9nK|u3a=Dqem@r(9DJ=(__XEf+%7hVN&H)B;@7-cnq^L70zEO1x%@Sc%-56o{N)K$TzWp#j46>9$Oi>lNtBk3`CzA4k|c{jJ}8ia zXW)YZodG)csX#vH6r(M85v<|`qVEQLP!aJYoJ5hHIL7pn;gRGVhAZpEcKZ&F8lEeot|VZAPdoM7Lmo|Ir2PNLY9(c zWI0(uR;cmTgo}~+^5g}f#yf@3sEnGF|Nn|_)KlYLj|XGst^{D44KUi8V=z}_%?YsP z7;BEjva!~j5X;6{b0W-*x8~3waU|H6>|qMw;%410B|#%*@l59cR!7BOupZjRtdzOZGtBjzJWMoo8YlE zCxFeMwdUxs-Q|9N#B}XO?IRFJ$dR{?Kz#AggU~ln`{5T7XsUa_JR;A~cXZ8|KusBS zqm=0TqRqU-U3uHM&gK2VbQSK0-$+-}p)Z-ogq!mx<5=LxQwriK zIa_Qwh^Iu|FQpV@r4+gjUuJw@@rfKFGAO5XtwZ9;+FXJI|pT&jAVZ zExPd>S}l~iSvhp$Ioty-{RtBz2*o(E?g`_-O!DSw&?R^i_+l%{wL4EkfE1~e-I2!g z7CZ}E;jV>tcbsuIEciAl&Gj9?lh<^2)buuZ#7pl9-MOFsWPC!Y8>Pbg^NjIZC1gyO zD#|#RXS{~HI+^%9^9pblPQl2@tdC%;J}9SP>zD>3r!ays6+foIbW9%*;U&m~{;N|2 zar#DR1UdLJ`Z#eC!-K|!pW1?;Z#shsUFHHNDFU}4}ovH+J&6t9C zO-p!9cd?j>gx54<&9RU`Jgm94;WSfmpkJZkAI+h1R6J1$Pc#IHDv6(^VF(gUBL0}8 zqZ5L5lg!&e2-=>K+~tB9L0W;7Zz$y(CRiFuv0*-mw=|Sm8%nWZB%vSFQG!x510_#T zie`{Z0k&`of zxRgOS&!7jdPx=`jwcH-OK0O)k+AQK5(l$kUAi*~*igMFu6|F`wOm7luQHt>zZao7;74MrUBS)!f2yg4oP0+-h#&=!nxvoW9QBK})*>!5}I8UGF{`L}w+|3mZNY;N>yhnia~Z*GzN;_PBEw@7|*_Oe)8BwAYp zT^m&p$uIwHi)kd9TNJ-&Mxwcy!*1&JBGKI1@Q%32bl~Q85y%SUJf|q0li0#3is$5Q z;S|-z38HvLZGlXbl~EMWh;E+uW1Jnuz409rqNit3v@7vEgJ_%Q+LLH&Poi<+gj;v#(KvCe8)Po^JI13oJ^Z3VD0m@y@4U$ zn088w!9JNc_%YT#QKiLjD_sO3dYOfR`2>NUiEo0oBMlkPpzTOQh78Pmdl}E5?MOpr zWgxRMph}aW(#-vnwNsj`gVOlOoGMMpD=ijq7b%Yj99A>u_%P?7$epyL@Wwn zJ79?Ah3I&U;S4nLr#zF?_;EGOQl@RE8gV?+wo{EbE7Le+YCF}4voeiq$26`}rk60- z{Rq#DV@M(Hs?66!+)+(r#7!^@n((6cMsAE)Fj{~giE_JKnQ%XPjDsVL2Qv7?+`>;K z7J_-O##Xf?U1o$(g z*4DiNfLD)#ZFOx`aiccVU0Yu{WsPUX&`X(A@J2Rg>yCiY8tf@v`{aJ zIR0e+*Sp}}-mPbEz4P&>aR2y+XIqZE@xJ3HV&@Eqc=z}H%-3@r4}5d*+Ub)n@1H!x zq%o#EhnciL2OoumJkO07=&5n$kw7)YV8PXd5#LR1{9H)kc<;eA;Lr4(b?5 znL%`d-5Dizmf&v((y}TSM=Z-0mYwLbxJ!d>(jb>l<~vl*6{Sk#8G;M~{mLcMvJ!># z@WBNihZR<6YYvOjBu=njQV9-nNulmtNlJ=?h&TvBQXQt=uZ)q%7sMWNID}^-eHS`C zo3g}T<9sv+f~1l=Qb~A!-}qeLL*fOAqWBYGX(G)uePyFWppF|L($thm`jyW;!Vc0- zYm`(T5r{*H2C7J?uD-bR&nm4xbWSKc`fBLrUROg~n^zqPUDTy-kC0F;;9WRBs>dy9 zbwfj4)m3Th73uux2c!q2WYUtX@-7>tSB28+uu-~+T_v5qQEJe&Zj^q*ZIo`5Hc7Qz z^c$szg7jJ}4-q~uy;CKr3|k>-9WXj(j{53#M{VPE5N^How%`VQvb|t(i6lb@)g`)g z-898GLq->^^MW9;bFo9S;E*t)&cj!IKcn4%pHy81~aI^CpLD5%hC z8yjLXm2Ua=aj7e1T+^@CNA53S$p^ zyefz>I@Ga0lMBHSNv@BUleDhEhej^!QR{HA+ZtzSwbs9(tYnk)0Fe&Q z%o?zf{3MnR$(Tzb*7X%g^EZ+N4{6RS@??Z#!f?lo;m1TrN$v6`Vh}q=9DncJ;kgm& zL#KD$6FYz65Z@GA&^Uebi{;h&RREdwy4pm=gP!@K%?EAG^>?qPZ(f_)!?K z^Gt!;F}QQ_@aNm!`QohMgLi-Z?BT};`ne?>ac@E%={+71MeKI{A9$plungajw`iL- zmq{Xxkv%2x`HmSM=A1i!`NDd!bI-o1iIRl+K*@v6r1`|}>hoWmJ}q`W(>FCnl6aF$ zfQX-ZC!Tga{h;?x>fOD?&ciEWD|bp(BuJi#9OV!dtIp6?RW(Gqi(<$@=h$JzRg<-n z`@Q=}q{WdyF*NzX-33b9sp(3hO*s6{b3U4m#EBr$9w)5-GeT6@aJ3Kv3 z7$aw*aK$OV3)(jvp41xSpLLjFxHh7GdryOUAXFFEl%-E@Yy{KDKLoFmH4Hmm zPmid~>WEU~|;d>19S2=VsmJjRCG?CK`lj8(~y*)%Z0$j3|ZWXXBk_#G^o;J8%t(&MV zZ4~19dm*S9XA$F^$~ZgpWa^2xqsY^V@qE&+c?rIcaAErQW}I1HASn%vWx6U>+lL8g z!0@6BKnGQz1+h0&K-gG42%?L!VWwOzSI83+zL#TE#U9lkRBWR#92K3!O;@pchtX7- z7~||LVSPC75J4=Lp2AAqEMXA7vz$i5A+8~XUB=>S)NOAs_D{j z)7nbNRxZR_;AQHb#!88)K97Bt1PF1U=$PQhw&E|hcu1cKR~I1g%snK@tt_c8URpmL1^~hL zUIqpR7G&w_s~h?(09X7bwgBUyErxoih6YG5utYFko|&jrXf*10nMSV4BJwm=rUF(b zS0u?nrO!yrl&7aB5~qTGgEI4m7ZiQeAS}olsF3GIq<71b931yqcpN+f()hjyA+wH| zG_Tr)WYo#!cV>sm)9XSHx)@-CvO*5q3{FcALYhBDc$solf(i{IIVCGgmY9|7o+wLC zGfd3Fu}fBFXp)p!2~5V~q@fMk`UZUw49ZK-)kMsRhoZFF+DwdWpeR>YT3l7c2QNjM zX{B0ul`2-QF8fFotL;6lEJu4G)evfc>#?8_uecWIzA*M6Gk)p7E_)806(kylXv;Na zm5qlhHxDtaEeDNZenl*98LImLnk-FbKi|TSR0a>pCJ$UUuhlfx>#8;;8I;U3n|r-6p8y50fJ%B zDlV3P_E4<2Csru$@}N~*68qifLx1U-bWfagS4{8cTE*Xpf3E*d>?G+`Jfb*letb4~ z9wLTkw0ofb*l+f-HPOL&V)c2DVK?m<0)3%Rn~FZ4l&P#au*3z#NF@ zuBNk5CYM3%_sqYV%8~hOq!*PT2`>eIl|nHTbEWxgrU%{Av@77=&1bU^onVJ{8^ZQN zG~Ew9MTQ$?Ml0>muMJ_;y7sSTbg~^fyMXP@y;Q(@bAE+vZ~SzmseoOyvet!L zRLJIXD+*XSH=z(q^Msq0U^tVq3?NH@k`g%*Uo_ApAFn2vD znp*hc(42K8f1TM;H|tOvezE50D!(_%HA{7hz?>=h3)=7=J-V*HyJyUxd6LK~BL22t z8~*hzr*`jL{Y~~uwb!#QR>bUX!w1cN_<=FzMxOyYPu|^j?9!2vwgUFx&-*`uA=&%B zDtu*q^lB?1T0R*4x`DcL{8(ZNh{&5J)iCyBvUdb~mSLynfA7S(j%Fp?ucNS|t46Us zxY*I`mjVpbImswC&=g+8vV_SUW{MfZb|s{M%NfhYF}Di1>0{Yg%x=Xj0q*ixb_Rli zacl(nlbbn?#rON%<#AXQ*Ab`jY?MH|VFaff&&Dz_6F4n}xMN&Bp1mO;5vJ*7EdGk~ zCilCRZOO~Z$kJ$3%H$+fiYh7N=_D09XAVwJl_tg~CMcE4q_zw3*%_%)Rgx+(MUk1A zqDV^4OiEJGq)6c&m9uv|5)?5Kn&Ok>su)R9ate2U0=v{?s9@y`*~9Ic$cFZ>MIF&k zeimbL!Sn(qF{Wlr^an<7VnV55D{lJf_c(NwESo-+f2Q?q|I>&IoWv$OIt=Dd4+O@Q M!cdc85^E6s7n}0ixc~qF delta 17894 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 NY7I3Rrn3gge*qa7bLRj6 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportDeliverOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportDeliverOrder.java new file mode 100644 index 00000000..ce7b740d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportDeliverOrder.java @@ -0,0 +1,22 @@ +package org.nl.wms.sch.manage; + + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext.sap.service.WmsToSapService; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoImportDeliverOrder { + private final WmsToSapService wmsToSapService; + + public void run() { + //通过ACS接口获取温度 + JSONObject form = new JSONObject(); + form.put("is_auto", "1"); + wmsToSapService.getDeliveryNote(form); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportSaleOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportSaleOrder.java new file mode 100644 index 00000000..46e74953 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoImportSaleOrder.java @@ -0,0 +1,27 @@ +package org.nl.wms.sch.manage; + + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.ext.sap.service.WmsToSapService; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoImportSaleOrder { + private final WmsToSapService wmsToSapService; + + public void run() { + //通过ACS接口获取温度 + JSONObject form = new JSONObject(); + form.put("is_auto", "1"); + wmsToSapService.getSaleOrder(form); + } +} diff --git a/mes/qd/src/api/wms/ext/sap.js b/mes/qd/src/api/wms/ext/sap.js new file mode 100644 index 00000000..a30d3d35 --- /dev/null +++ b/mes/qd/src/api/wms/ext/sap.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function getSaleOrder(data) { + return request({ + url: 'api/sap/getSaleOrder', + method: 'post', + data + }) +} + +export function getDeliveryNote(data) { + return request({ + url: 'api/sap/getDeliveryNote', + method: 'post', + data + }) +} + +export function getMater(data) { + return request({ + url: 'api/sap/getMater', + method: 'post', + data + }) +} + +export default { getSaleOrder, getDeliveryNote, getMater } diff --git a/mes/qd/src/views/wms/basedata/master/material/Dialog.vue b/mes/qd/src/views/wms/basedata/master/material/Dialog.vue new file mode 100644 index 00000000..85e5e7ab --- /dev/null +++ b/mes/qd/src/views/wms/basedata/master/material/Dialog.vue @@ -0,0 +1,97 @@ + + + + diff --git a/mes/qd/src/views/wms/basedata/master/material/index.vue b/mes/qd/src/views/wms/basedata/master/material/index.vue index b63719ff..a0fa3b36 100644 --- a/mes/qd/src/views/wms/basedata/master/material/index.vue +++ b/mes/qd/src/views/wms/basedata/master/material/index.vue @@ -174,6 +174,7 @@ + @@ -184,6 +185,7 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import Dialog from '@/views/wms/basedata/master/material/Dialog' import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import crudClassstandard from '@/api/wms/basedata/master/classstandard' @@ -227,7 +229,7 @@ export default { name: 'Materialbase', // 数据字典 dicts: ['is_used'], - components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect, Dialog }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -244,6 +246,7 @@ export default { classes1: [], classes2: [], classes3: [], + dialogShow: false, fullscreenLoading: false, measure_unit: [], productSeries: [], @@ -347,13 +350,7 @@ export default { }) }, synchronize() { - this.fullscreenLoading = true - crudMaterialbase.synchronize(this.crud.query).then(res => { - this.fullscreenLoading = false - this.crud.notify('同步成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) - }).catch(() => { - this.fullscreenLoading = false - }) + this.dialogShow = true }, queryClassId() { const param = { diff --git a/mes/qd/src/views/wms/pcs/deliveryorder/Dialog.vue b/mes/qd/src/views/wms/pcs/deliveryorder/Dialog.vue new file mode 100644 index 00000000..d5e625c1 --- /dev/null +++ b/mes/qd/src/views/wms/pcs/deliveryorder/Dialog.vue @@ -0,0 +1,93 @@ + + + + diff --git a/mes/qd/src/views/wms/pcs/deliveryorder/index.vue b/mes/qd/src/views/wms/pcs/deliveryorder/index.vue index 54c39ef9..8a254dae 100644 --- a/mes/qd/src/views/wms/pcs/deliveryorder/index.vue +++ b/mes/qd/src/views/wms/pcs/deliveryorder/index.vue @@ -12,7 +12,8 @@ label-suffix=":" > - + - + + + + + + - + + + 同步 + + - + - - - - - + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + + - + + + diff --git a/mes/qd/src/views/wms/pcs/saleorder/index.vue b/mes/qd/src/views/wms/pcs/saleorder/index.vue index 531dc4ae..d24e197e 100644 --- a/mes/qd/src/views/wms/pcs/saleorder/index.vue +++ b/mes/qd/src/views/wms/pcs/saleorder/index.vue @@ -62,14 +62,41 @@ placeholder="请选择" /> + + + + + - - + + + 同步 + + - + + @@ -122,7 +151,7 @@ import crudSaleOrder from '@/api/wms/pcs/saleOrder' import CRUD, { presenter, header, form, crud } from '@crud/crud' import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' -import udOperation from '@crud/UD.operation' +import Dialog from '@/views/wms/pcs/saleorder/Dialog' import pagination from '@crud/Pagination' import Treeselect, {LOAD_CHILDREN_OPTIONS} from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' @@ -131,8 +160,8 @@ import crudClassstandard from '@/api/wms/basedata/master/classstandard' const defaultForm = { sale_id: null, sale_code: null, seq_no: null, sale_type: null, material_id: null, status: null, sale_qty: null, produce_seq: null, cust_id: null, qty_unit_id: null, plandeliver_date: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, cust_code: null, cust_name: null } export default { name: 'SaleOrder', - dicts: ['PCS_SALE_STATUS', 'PCS_SAL_TYPE'], - components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, + dicts: ['PCS_SALE_STATUS', 'PCS_SAL_TYPE', 'IS_OR_NOT'], + components: { pagination, crudOperation, rrOperation, Treeselect, Dialog }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ title: '销售订单', url: 'api/saleOrder', idField: 'sale_id', sort: 'sale_id,desc', @@ -148,10 +177,9 @@ export default { data() { return { classes3: [], + dialogShow: false, permission: { }, - rules: { - }, queryTypeOptions: [ { key: 'sale_code', display_name: '销售单号' } ] @@ -174,6 +202,9 @@ export default { }) }) }, + importin() { + this.dialogShow = true + }, buildTree(classes) { classes.forEach(data => { if (data.children) {