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