From 748baeaff18aeedcdb39122e697a7da954408e18 Mon Sep 17 00:00:00 2001
From: yinq <1345442242@qq.com>
Date: Wed, 27 Sep 2023 15:16:58 +0800
Subject: [PATCH] =?UTF-8?q?add=20-=20API=E6=A8=A1=E5=9D=97=E3=80=81SAP?=
=?UTF-8?q?=E7=89=A9=E6=96=99=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
aucma-admin/pom.xml | 6 ++
.../src/main/resources/application-dev.yml | 8 +-
.../src/main/resources/application-local.yml | 5 ++
.../src/main/resources/application-prod.yml | 5 ++
aucma-api/pom.xml | 27 ++++++
.../api/controller/SAPPortController.java | 53 ++++++++++++
.../com/aucma/api/domain/dto/SAPPortDto.java | 58 +++++++++++++
.../com/aucma/api/domain/dto/WERKSDto.java | 33 ++++++++
.../com/aucma/api/domain/vo/SAPResultVo.java | 58 +++++++++++++
.../aucma/api/service/ISAPPortService.java | 27 ++++++
.../api/service/ISAPPutStorageService.java | 32 ++++++++
.../api/service/impl/SAPPortServiceImpl.java | 82 +++++++++++++++++++
.../impl/SAPPutStorageServiceImpl.java | 60 ++++++++++++++
.../com/aucma/api/utils/SAPConstants.java | 47 +++++++++++
.../service/IBaseMaterialinfoService.java | 2 +
aucma-common/pom.xml | 6 ++
.../aucma/common/utils/http/HttpUtils.java | 32 +++++++-
.../framework/config/SecurityConfig.java | 2 +
.../service/impl/SysPortLogServiceImpl.java | 2 +-
pom.xml | 8 ++
20 files changed, 550 insertions(+), 3 deletions(-)
create mode 100644 aucma-api/pom.xml
create mode 100644 aucma-api/src/main/java/com/aucma/api/controller/SAPPortController.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/domain/dto/SAPPortDto.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/domain/dto/WERKSDto.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/domain/vo/SAPResultVo.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/service/ISAPPortService.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/service/ISAPPutStorageService.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/service/impl/SAPPortServiceImpl.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/service/impl/SAPPutStorageServiceImpl.java
create mode 100644 aucma-api/src/main/java/com/aucma/api/utils/SAPConstants.java
diff --git a/aucma-admin/pom.xml b/aucma-admin/pom.xml
index 94e6931..261a3b3 100644
--- a/aucma-admin/pom.xml
+++ b/aucma-admin/pom.xml
@@ -79,6 +79,12 @@
aucma-base
+
+
+ com.aucma
+ aucma-api
+
+
diff --git a/aucma-admin/src/main/resources/application-dev.yml b/aucma-admin/src/main/resources/application-dev.yml
index 7236a9f..d7df4ad 100644
--- a/aucma-admin/src/main/resources/application-dev.yml
+++ b/aucma-admin/src/main/resources/application-dev.yml
@@ -1,7 +1,7 @@
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
- port: 8080
+ port: 6061
servlet:
# 应用的访问路径
context-path: /
@@ -16,6 +16,12 @@ server:
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
+# SAP接口
+sap:
+ # URL前缀
+ prefix: http://soaqas.aucma.com:8011
+
+
# 数据源配置
spring:
# 文件上传
diff --git a/aucma-admin/src/main/resources/application-local.yml b/aucma-admin/src/main/resources/application-local.yml
index 7236a9f..4118679 100644
--- a/aucma-admin/src/main/resources/application-local.yml
+++ b/aucma-admin/src/main/resources/application-local.yml
@@ -16,6 +16,11 @@ server:
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
+# SAP接口
+sap:
+ # URL前缀
+ prefix: http://10.11.43.111:81
+
# 数据源配置
spring:
# 文件上传
diff --git a/aucma-admin/src/main/resources/application-prod.yml b/aucma-admin/src/main/resources/application-prod.yml
index 7236a9f..4118679 100644
--- a/aucma-admin/src/main/resources/application-prod.yml
+++ b/aucma-admin/src/main/resources/application-prod.yml
@@ -16,6 +16,11 @@ server:
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
+# SAP接口
+sap:
+ # URL前缀
+ prefix: http://10.11.43.111:81
+
# 数据源配置
spring:
# 文件上传
diff --git a/aucma-api/pom.xml b/aucma-api/pom.xml
new file mode 100644
index 0000000..659ef3f
--- /dev/null
+++ b/aucma-api/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+ aucma
+ com.aucma
+ 3.8.6
+
+ 4.0.0
+
+ aucma-api
+
+
+ API接口
+
+
+
+
+
+
+ com.aucma
+ aucma-base
+
+
+
+
\ No newline at end of file
diff --git a/aucma-api/src/main/java/com/aucma/api/controller/SAPPortController.java b/aucma-api/src/main/java/com/aucma/api/controller/SAPPortController.java
new file mode 100644
index 0000000..2885678
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/controller/SAPPortController.java
@@ -0,0 +1,53 @@
+package com.aucma.api.controller;
+
+import com.aucma.api.domain.dto.SAPPortDto;
+import com.aucma.api.domain.dto.WERKSDto;
+import com.aucma.api.service.ISAPPortService;
+import com.aucma.base.domain.BaseMaterialInfo;
+import com.aucma.common.core.controller.BaseController;
+import com.aucma.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+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.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 14:29
+ */
+@RestController
+@RequestMapping("/sap/port")
+public class SAPPortController extends BaseController {
+
+ @Autowired
+ private ISAPPortService sapPortService;
+
+ /**
+ * 获取SAP物料主数据
+ * @param paramMap
+ * @return
+ */
+ @PostMapping("/getSAPMaterialData")
+ public AjaxResult getSAPMaterialData(@RequestBody Map paramMap) {
+ SAPPortDto sapPortDto = new SAPPortDto();
+ sapPortDto.setStartDate(String.valueOf(paramMap.get("NDATE")));
+ sapPortDto.setEndDate(String.valueOf(paramMap.get("EDATE")));
+ HashMap>> werksMap = (HashMap>>)paramMap.get("WERKS");
+ WERKSDto werksDto = new WERKSDto();
+ werksDto.setItem(werksMap.get("item"));
+ sapPortDto.setFactoryCodes(werksDto);
+ List materialVoList = sapPortService.getSAPMaterialData(sapPortDto);
+ return AjaxResult.success(materialVoList);
+ }
+
+
+
+
+
+
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/domain/dto/SAPPortDto.java b/aucma-api/src/main/java/com/aucma/api/domain/dto/SAPPortDto.java
new file mode 100644
index 0000000..9badeef
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/domain/dto/SAPPortDto.java
@@ -0,0 +1,58 @@
+package com.aucma.api.domain.dto;
+
+import com.aucma.common.core.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 14:46
+ */
+public class SAPPortDto {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 开始时间
+ */
+ @JsonProperty(value = "NDATE")
+ private String startDate;
+
+ /**
+ * 结束时间
+ */
+ @JsonProperty(value = "EDATE")
+ private String endDate;
+
+
+ /**
+ * 工厂编号
+ */
+ @JsonProperty(value = "WERKS")
+ private WERKSDto factoryCodes;
+
+
+ public String getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(String startDate) {
+ this.startDate = startDate;
+ }
+
+ public String getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(String endDate) {
+ this.endDate = endDate;
+ }
+
+ public WERKSDto getFactoryCodes() {
+ return factoryCodes;
+ }
+
+ public void setFactoryCodes(WERKSDto factoryCodes) {
+ this.factoryCodes = factoryCodes;
+ }
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/domain/dto/WERKSDto.java b/aucma-api/src/main/java/com/aucma/api/domain/dto/WERKSDto.java
new file mode 100644
index 0000000..494dae2
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/domain/dto/WERKSDto.java
@@ -0,0 +1,33 @@
+package com.aucma.api.domain.dto;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 15:13
+ */
+public class WERKSDto {
+
+
+ /**
+ * 工厂请求Map
+ */
+ List> item;
+
+
+ public List> getItem() {
+ return item;
+ }
+
+ public void setItem(List> item) {
+ this.item = item;
+ }
+
+ @Override
+ public String toString() {
+ return "WERKSDto{" +
+ "item=" + item +
+ '}';
+ }
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/domain/vo/SAPResultVo.java b/aucma-api/src/main/java/com/aucma/api/domain/vo/SAPResultVo.java
new file mode 100644
index 0000000..671bdb7
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/domain/vo/SAPResultVo.java
@@ -0,0 +1,58 @@
+package com.aucma.api.domain.vo;
+
+import com.aucma.api.domain.dto.WERKSDto;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 物料主数据
+ *
+ * @Author YinQ
+ * @create 2023-09-27 13:37
+ */
+public class SAPResultVo {
+
+ @JsonProperty(value = "O_TAB")
+ private HashMap>> O_TAB;
+
+ @JsonProperty(value = "WERKS")
+ private String WERKS;
+
+ @JsonProperty(value = "O_RETURN")
+ private WERKSDto O_RETURN;
+
+ public HashMap>> getO_TAB() {
+ return O_TAB;
+ }
+
+ public void setO_TAB(HashMap>> o_TAB) {
+ O_TAB = o_TAB;
+ }
+
+ public String getWERKS() {
+ return WERKS;
+ }
+
+ public void setWERKS(String WERKS) {
+ this.WERKS = WERKS;
+ }
+
+ public WERKSDto getO_RETURN() {
+ return O_RETURN;
+ }
+
+ public void setO_RETURN(WERKSDto o_RETURN) {
+ O_RETURN = o_RETURN;
+ }
+
+ @Override
+ public String toString() {
+ return "SAPResultVo{" +
+ "O_TAB=" + O_TAB +
+ ", WERKS='" + WERKS + '\'' +
+ ", O_RETURN=" + O_RETURN +
+ '}';
+ }
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/service/ISAPPortService.java b/aucma-api/src/main/java/com/aucma/api/service/ISAPPortService.java
new file mode 100644
index 0000000..7796bf9
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/service/ISAPPortService.java
@@ -0,0 +1,27 @@
+package com.aucma.api.service;
+
+import com.aucma.api.domain.dto.SAPPortDto;
+import com.aucma.base.domain.BaseMaterialInfo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 14:33
+ */
+@Service("SAPPort")
+public interface ISAPPortService {
+
+
+ /**
+ * 获取SAP物料主数据
+ * @param sapPortDto
+ * @return
+ */
+ List getSAPMaterialData(SAPPortDto sapPortDto);
+
+
+
+
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/service/ISAPPutStorageService.java b/aucma-api/src/main/java/com/aucma/api/service/ISAPPutStorageService.java
new file mode 100644
index 0000000..aeb45d4
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/service/ISAPPutStorageService.java
@@ -0,0 +1,32 @@
+package com.aucma.api.service;
+
+import com.aucma.api.domain.vo.SAPResultVo;
+import com.aucma.base.domain.BaseDeviceLedger;
+import com.aucma.base.domain.BaseMaterialInfo;
+
+import java.util.ArrayList;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-27 15:07
+ */
+public interface ISAPPutStorageService {
+
+
+ /**
+ * 转物料实体类 保存数据
+ * @param resultVo
+ * @return
+ */
+ public ArrayList insertSAPMaterialInfo(SAPResultVo resultVo);
+
+
+ /**
+ * 转设备台账实体类 保存数据
+ * @param resultVo
+ * @return
+ */
+ public ArrayList insertSAPDeviceLedger(SAPResultVo resultVo);
+
+
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPortServiceImpl.java b/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPortServiceImpl.java
new file mode 100644
index 0000000..530e156
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPortServiceImpl.java
@@ -0,0 +1,82 @@
+package com.aucma.api.service.impl;
+
+
+import com.aucma.api.domain.dto.SAPPortDto;
+import com.aucma.api.domain.dto.WERKSDto;
+import com.aucma.api.domain.vo.SAPResultVo;
+import com.aucma.api.service.ISAPPortService;
+import com.aucma.api.service.ISAPPutStorageService;
+import com.aucma.api.utils.SAPConstants;
+import com.aucma.base.domain.BaseMaterialInfo;
+import com.aucma.common.exception.base.BaseException;
+import com.aucma.common.utils.StringUtils;
+import com.aucma.common.utils.http.HttpUtils;
+import com.aucma.system.utils.PortLogUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 14:34
+ */
+@Service
+public class SAPPortServiceImpl implements ISAPPortService {
+
+ @Autowired
+ private ISAPPutStorageService storageService;
+
+ /**
+ * 获取SAP物料主数据
+ *
+ * @param sapPortDto
+ * @return
+ */
+ @Override
+ public List getSAPMaterialData(SAPPortDto sapPortDto) {
+ String startDate = sapPortDto.getStartDate();
+ String endDate = sapPortDto.getEndDate();
+ WERKSDto werks = sapPortDto.getFactoryCodes();
+ String intervalDate = "(" + startDate + "——" + endDate + ")";
+ if (StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate) || StringUtils.isNull(werks)) {
+ return null;
+ }
+ ArrayList materialVos = new ArrayList<>();
+ String requestParam = null;
+ String result = null;
+ try {
+ // 创建ObjectMapper实例 对象转JSON字符串
+ ObjectMapper objectMapper = new ObjectMapper();
+ // 格式化输出
+ // objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
+ requestParam = objectMapper.writeValueAsString(sapPortDto);
+ result = HttpUtils.sendHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam);
+ // 处理接口返回消息
+ // result = "{\"O_TAB\":{\"item\":[{\"MAKTX\":\"压缩机,GP14TG,R134a,ACC\",\"WERKS\":\"2004\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000125\"},{\"MAKTX\":\"压缩机,GP14TG,R134a,ACC\",\"WERKS\":\"2006\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000125\"},{\"MAKTX\":\"压缩机,NL7CLX,R404a,丹佛斯\",\"WERKS\":\"2004\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000126\"},{\"MAKTX\":\"压缩机,NL7CLX,R404a,丹佛斯\",\"WERKS\":\"2006\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000126\"},{\"MAKTX\":\"压缩机,HVY57AA,R600a,奥地利ACC\",\"WERKS\":\"2004\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000127\"},{\"MAKTX\":\"压缩机,HVY57AA,R600a,奥地利ACC\",\"WERKS\":\"2006\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000127\"},{\"MAKTX\":\"压缩机,HVY67AA,R600a,奥地利ACC\",\"WERKS\":\"2004\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000128\"},{\"MAKTX\":\"压缩机,HVY67AA,R600a,奥地利ACC\",\"WERKS\":\"2006\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000128\"},{\"MAKTX\":\"压缩机,MR22FB,R404a,ACC\",\"WERKS\":\"2004\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000129\"},{\"MAKTX\":\"压缩机,MR22FB,R404a,ACC\",\"WERKS\":\"2006\",\"MTART\":\"ROH\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-21\",\"MATNR\":\"000000003000000129\"},{\"MAKTX\":\"盖后加固体,BC/BD-127FA\",\"WERKS\":\"2004\",\"MTART\":\"HALB\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-06\",\"MATNR\":\"000000008106000102\"},{\"MAKTX\":\"SC-246,YZXGWB乳品\",\"WERKS\":\"2006\",\"MTART\":\"FERT\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-22\",\"MATNR\":\"000000009002003478\"},{\"MAKTX\":\"SD-460,YZXGW蒙牛冰品\",\"WERKS\":\"2004\",\"MTART\":\"FERT\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-22\",\"MATNR\":\"000000009000004735\"},{\"MAKTX\":\"BC-100E,特需\",\"WERKS\":\"2006\",\"MTART\":\"FERT\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-02\",\"MATNR\":\"000000009001002406\"},{\"MAKTX\":\"BD(C)-310T,特需\",\"WERKS\":\"2004\",\"MTART\":\"FERT\",\"MEINS\":\"EA\",\"UDATE\":\"2019-08-20\",\"MATNR\":\"000000009000000225\"}]},\"WERKS\":null,\"O_RETURN\":{\"item\":[{\"MESSAGE\":\"查询成功1!\",\"ID\":\" 0\",\"TYPE\":\"S\"}]}}";
+ ObjectMapper resultMapper = new ObjectMapper();
+ // 将 JSON 字符串转换为 Java 对象
+ SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class);
+ //判断返回数据是否正确
+ if (StringUtils.isNull(resultVo.getO_RETURN()) || "0".equals(resultVo.getO_RETURN().getItem().get(0).get("ID"))){
+ throw new BaseException("处理接口返回消息错误!(ID不为0或O_RETURN为空)");
+ }
+ //转物料实体类 保存数据
+ materialVos = storageService.insertSAPMaterialInfo(resultVo);
+ //保存接口日志
+ PortLogUtils.savePortLog(werks.getItem().get(0).get("WERKS"), "获取SAP物料主数据" + intervalDate, "getSAPMaterialData", requestParam, result, null);
+ } catch (Exception e) {
+ //保存接口日志
+ System.out.println(e.getMessage());
+ PortLogUtils.savePortLog(werks.getItem().get(0).get("WERKS"), "获取SAP物料主数据" + intervalDate, "getSAPMaterialData", requestParam, result, e.toString());
+ }
+ return materialVos;
+ }
+
+
+
+
+
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPutStorageServiceImpl.java b/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPutStorageServiceImpl.java
new file mode 100644
index 0000000..13e5530
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/service/impl/SAPPutStorageServiceImpl.java
@@ -0,0 +1,60 @@
+package com.aucma.api.service.impl;
+
+import com.aucma.api.domain.vo.SAPResultVo;
+import com.aucma.api.service.ISAPPutStorageService;
+import com.aucma.base.domain.BaseDeviceLedger;
+import com.aucma.base.domain.BaseMaterialInfo;
+import com.aucma.base.service.IBaseDeviceLedgerService;
+import com.aucma.base.service.IBaseMaterialInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * SAP接口存入数据业务层
+ * @Author YinQ
+ * @create 2023-09-27 15:07
+ */
+public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
+
+ @Autowired
+ private IBaseMaterialInfoService baseMaterialInfoService;
+
+ @Autowired
+ private IBaseDeviceLedgerService baseDeviceLedgerService;
+
+ /**
+ * 转物料实体类 保存数据
+ * @param resultVo
+ * @return
+ */
+ public ArrayList insertSAPMaterialInfo(SAPResultVo resultVo){
+ ArrayList baseMaterialInfoArrayList = new ArrayList<>();
+ List> itemList = resultVo.getO_TAB().get("item");
+ for (HashMap map : itemList) {
+ BaseMaterialInfo materialInfo = new BaseMaterialInfo();
+ materialInfo.setMaterialCode(map.get("MATNR"));
+ materialInfo.setMaterialName(map.get("MAKTX"));
+ materialInfo.setMaterialType(map.get("MTART"));
+ materialInfo.setPlantCode(map.get("WERKS"));
+ materialInfo.setMaterialUnit(map.get("MEINS"));
+ baseMaterialInfoService.insertBaseMaterialInfo(materialInfo);
+ baseMaterialInfoArrayList.add(materialInfo);
+ }
+ return baseMaterialInfoArrayList;
+ }
+
+ /**
+ * 转设备台账实体类 保存数据
+ * @param resultVo
+ * @return
+ */
+ @Override
+ public ArrayList insertSAPDeviceLedger(SAPResultVo resultVo) {
+ return null;
+ }
+
+
+}
diff --git a/aucma-api/src/main/java/com/aucma/api/utils/SAPConstants.java b/aucma-api/src/main/java/com/aucma/api/utils/SAPConstants.java
new file mode 100644
index 0000000..02e3a21
--- /dev/null
+++ b/aucma-api/src/main/java/com/aucma/api/utils/SAPConstants.java
@@ -0,0 +1,47 @@
+package com.aucma.api.utils;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author YinQ
+ * @create 2023-09-26 15:39
+ */
+@Component
+public class SAPConstants {
+
+
+ /**
+ * SAP-URL前缀
+ */
+ public static String SAP_PREFIX_URL;
+
+ /**
+ * 获取物料主数据(MES2019)
+ */
+ public static final String MATERIAL_URL = "/SdGetSB/SdSapGetMaterialToMesSvcRSProxy/merge";
+
+ /**
+ * 获取生产工单(MES2019)
+ */
+ public static final String PRODUCTION_ORDERS_URL = "/SdGetSB/SdSapGetPOToMesSvcRSProxy/merge";
+
+ /**
+ * 获取设备模具信息(MES2019)
+ */
+ public static final String EQUIPMENT_URL = "/SdGetSB/SdSapGetEQToMesSvcRSProxy/merge";
+
+ /**
+ * 获取产品BOM信息(MES2019)
+ */
+ public static final String PRODUCTS_BOM_URL = "/SdGetSB/SdSapGetBomToMesSvcRSProxy/merge";
+
+
+ @Value("${sap.prefix}")
+ public void setPrefix(String value) {
+ SAP_PREFIX_URL = value;
+ }
+
+
+
+}
diff --git a/aucma-base/src/main/java/com/aucma/base/service/IBaseMaterialinfoService.java b/aucma-base/src/main/java/com/aucma/base/service/IBaseMaterialinfoService.java
index f6a0af7..1e6356c 100644
--- a/aucma-base/src/main/java/com/aucma/base/service/IBaseMaterialinfoService.java
+++ b/aucma-base/src/main/java/com/aucma/base/service/IBaseMaterialinfoService.java
@@ -35,6 +35,8 @@ public interface IBaseMaterialInfoService
*/
public int insertBaseMaterialInfo(BaseMaterialInfo baseMaterialInfo);
+
+
/**
* 修改物料信息
*
diff --git a/aucma-common/pom.xml b/aucma-common/pom.xml
index 3eb5d97..acb975f 100644
--- a/aucma-common/pom.xml
+++ b/aucma-common/pom.xml
@@ -126,6 +126,12 @@
javax.servlet-api
+
+ cn.hutool
+ hutool-all
+ 5.8.20
+
+
\ No newline at end of file
diff --git a/aucma-common/src/main/java/com/aucma/common/utils/http/HttpUtils.java b/aucma-common/src/main/java/com/aucma/common/utils/http/HttpUtils.java
index 4e27bb2..3abb079 100644
--- a/aucma-common/src/main/java/com/aucma/common/utils/http/HttpUtils.java
+++ b/aucma-common/src/main/java/com/aucma/common/utils/http/HttpUtils.java
@@ -17,6 +17,9 @@ import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aucma.common.constant.Constants;
@@ -24,7 +27,7 @@ import com.aucma.common.utils.StringUtils;
/**
* 通用http发送方法
- *
+ *
* @author ruoyi
*/
public class HttpUtils
@@ -271,4 +274,31 @@ public class HttpUtils
return true;
}
}
+
+
+ /**
+ * POST请求json格式
+ * @param apiUrl
+ * @param jsonData
+ * @return
+ */
+ public static String sendHttpPost(String apiUrl, String jsonData) {
+ try {
+ // 构建POST请求
+ HttpRequest request = HttpRequest.post(apiUrl)
+ .body(jsonData) // 设置JSON格式的请求体
+ .contentType("application/json"); // 设置Content-Type为application/json
+
+ // 发送POST请求
+ HttpResponse httpResponse = request.execute();
+
+ // 获取响应内容
+ return httpResponse.body();
+ } catch (Exception e) {
+ // 捕获异常并重新抛出自定义异常
+ throw new RuntimeException("Failed to send HTTP POST request: " + e.getMessage(), e);
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/aucma-framework/src/main/java/com/aucma/framework/config/SecurityConfig.java b/aucma-framework/src/main/java/com/aucma/framework/config/SecurityConfig.java
index 3f50e35..2f2dd8e 100644
--- a/aucma-framework/src/main/java/com/aucma/framework/config/SecurityConfig.java
+++ b/aucma-framework/src/main/java/com/aucma/framework/config/SecurityConfig.java
@@ -115,6 +115,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+ // 开放SAP接口调试
+ .antMatchers(HttpMethod.POST, "/sap/port/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated()
.and()
diff --git a/aucma-system/src/main/java/com/aucma/system/service/impl/SysPortLogServiceImpl.java b/aucma-system/src/main/java/com/aucma/system/service/impl/SysPortLogServiceImpl.java
index a009f2f..95e5fc1 100644
--- a/aucma-system/src/main/java/com/aucma/system/service/impl/SysPortLogServiceImpl.java
+++ b/aucma-system/src/main/java/com/aucma/system/service/impl/SysPortLogServiceImpl.java
@@ -56,7 +56,7 @@ public class SysPortLogServiceImpl implements ISysPortLogService
@Override
public int insertSysPortLog(SysPortLog sysPortLog)
{
- sysPortLog.setOperationUser(getUsername());
+ sysPortLog.setOperationUser("SAP");
sysPortLog.setOperationTime(DateUtils.getNowDate());
return sysPortLogMapper.insertSysPortLog(sysPortLog);
}
diff --git a/pom.xml b/pom.xml
index cf39ca8..9538364 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,13 @@
${aucma.version}
+
+
+ com.aucma
+ aucma-api
+ ${aucma.version}
+
+
@@ -188,6 +195,7 @@
aucma-generator
aucma-common
aucma-base
+ aucma-api
pom