change - sap接口鉴权

master
yinq 2 years ago
parent 28412ffeef
commit c7b35364d7

@ -20,6 +20,8 @@ server:
sap:
# URL前缀
prefix: http://soaqas.aucma.com:8011
username: mes05
password: Abcd1234
# 数据源配置

@ -19,7 +19,10 @@ server:
# SAP接口
sap:
# URL前缀
prefix: http://10.11.43.111:81
prefix: 10.11.43.111:81
# prefix: http://soaqas.aucma.com:8011
username: mes05
password: Abcd1234
# 数据源配置
spring:
@ -64,6 +67,7 @@ spring:
# 主库数据源
master:
url: jdbc:oracle:thin:@175.27.215.92:1521/helowin
# url: jdbc:oracle:thin:@192.168.80.10:1521/orcl
username: aucma_mes
password: aucma
# 从库数据源

@ -19,7 +19,9 @@ server:
# SAP接口
sap:
# URL前缀
prefix: http://10.11.43.111:81
prefix: http://soa.aucma.com:8011
username: mes05
password: HnMes@2o23
# 数据源配置
spring:

@ -9,7 +9,6 @@ import com.aucma.base.domain.BaseOrderInfo;
import com.aucma.base.domain.OrderBomInfo;
import com.aucma.common.core.controller.BaseController;
import com.aucma.common.core.domain.AjaxResult;
import com.aucma.production.domain.BaseBomInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -48,9 +47,12 @@ public class SAPPortController extends BaseController {
List<BaseMaterialInfo> materialVoList = sapPortService.getSAPMaterialData(sapPortDto);
return AjaxResult.success(materialVoList);
}
/**
*
* */
*
* @param paramMap
* @return
*/
@PostMapping ("/getProduceWorkTickets")
public AjaxResult getProduceWorkTickets(@RequestBody Map paramMap){
SAPPortDto sapPortDto = new SAPPortDto();
@ -62,9 +64,9 @@ public class SAPPortController extends BaseController {
sapPortDto.setFactoryCodes(werksDto);
sapPortService.getSapBaseOrderInfo(sapPortDto);
List<BaseOrderInfo> BaseOrderInfoVoList = sapPortService.getSapBaseOrderInfo(sapPortDto);
return AjaxResult.success(BaseOrderInfoVoList);
}
/**
*
* @param paramMap
@ -82,9 +84,12 @@ public class SAPPortController extends BaseController {
List<BaseDeviceLedger> BaseDeviceLedgerVoList = sapPortService.getSapDeviceLedgers(sapPortDto);
return AjaxResult.success(BaseDeviceLedgerVoList);
}
/**
* bom
* */
* @param paramMap
* @return
*/
@PostMapping("/getBaseBomInfo")
public AjaxResult getBaseBomInfo(@RequestBody Map paramMap) {
SAPPortDto sapPortDto = new SAPPortDto();
@ -99,8 +104,4 @@ public class SAPPortController extends BaseController {
}
}

@ -25,13 +25,26 @@ public interface ISAPPortService {
*/
List<BaseMaterialInfo> getSAPMaterialData(SAPPortDto sapPortDto);
/**
*
* @param sapPortDto
* @return
*/
List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto);
/**
*
* @param sapPortDto
* @return
*/
List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto);
/**
* bom
* @param sapPortDto
* @return
*/
List<OrderBomInfo> getSapOrderBomInfo(SAPPortDto sapPortDto);
}

@ -7,6 +7,7 @@ import com.aucma.api.domain.vo.SAPResultBomVo;
import com.aucma.api.domain.vo.SAPResultVo;
import com.aucma.api.service.ISAPPortService;
import com.aucma.api.service.ISAPPutStorageService;
import com.aucma.api.utils.ApiUtils;
import com.aucma.api.utils.SAPConstants;
import com.aucma.base.domain.BaseDeviceLedger;
import com.aucma.base.domain.BaseMaterialInfo;
@ -57,7 +58,7 @@ public class SAPPortServiceImpl implements ISAPPortService {
// 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto);
result = HttpUtils.sendHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam);
result = ApiUtils.sendSAPHttpPost(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();
@ -79,6 +80,11 @@ public class SAPPortServiceImpl implements ISAPPortService {
return materialVos;
}
/**
*
* @param sapPortDto
* @return
*/
@Override
public List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate();
@ -94,13 +100,10 @@ public class SAPPortServiceImpl implements ISAPPortService {
try{
// 创建ObjectMapper实例 对象转JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
// 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto);
//发送post请求 调用获取工单接口
result = HttpUtils.sendHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.PRODUCTION_ORDERS_URL, requestParam);
result = ApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.PRODUCTION_ORDERS_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);
@ -118,16 +121,14 @@ public class SAPPortServiceImpl implements ISAPPortService {
PortLogUtils.savePortLog(werks.getItem().get(0).get("WERKS"), "获取生产工单" + intervalDate, "getSAPBaseOrderInfo", requestParam, result, e.toString());
}
return baseOrderInfoVos ;
return baseOrderInfoVos;
}
/**
*
* @param sapPortDto
* @return
*/
@Override
public List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate();
@ -143,15 +144,9 @@ public class SAPPortServiceImpl implements ISAPPortService {
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.EQUIPMENT_URL, requestParam);
result = ApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.EQUIPMENT_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\"}]}}";
// System.out.println("========================================================");
// System.out.println(result);
// System.out.println("========================================================");
ObjectMapper resultMapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象
SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class);
@ -171,6 +166,11 @@ public class SAPPortServiceImpl implements ISAPPortService {
return baseDeviceLedgersVos;
}
/**
* bom
* @param sapPortDto
* @return
*/
@Override
public List<OrderBomInfo> getSapOrderBomInfo(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate();
@ -189,20 +189,15 @@ public class SAPPortServiceImpl implements ISAPPortService {
// 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto);
result = HttpUtils.sendHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.PRODUCTS_BOM_URL, requestParam);
result = ApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.PRODUCTS_BOM_URL, requestParam);
// 处理接口返回消息
// System.out.println("========================================================");
// System.out.println(result);
// System.out.println("========================================================");
// 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 对象
SAPResultBomVo resultVo = resultMapper.readValue(result, SAPResultBomVo.class);
//判断返回数据是否正确
// if (StringUtils.isNull(resultVo.getO_RETURN()) || !"0".equals(resultVo.getO_RETURN().get(0).get("ID"))){
// throw new BaseException("处理接口返回消息错误ID不为0或O_RETURN为空");
// }
if (StringUtils.isNull(resultVo.getO_RETURN()) || !"0".equals(resultVo.getO_RETURN().getItem().get(0).get("ID"))){
throw new BaseException("处理接口返回消息错误ID不为0或O_RETURN为空");
}
//转物料实体类 保存数据
orderBomInfosVos = storageService.insertSAPOrderBomInfo(resultVo);
//保存接口日志

@ -29,6 +29,7 @@ import java.util.List;
/**
* SAP
*
* @Author YinQ
* @create 2023-09-27 15:07
*/
@ -48,17 +49,18 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/**
*
*
* @param resultVo
* @return
*/
public ArrayList<BaseMaterialInfo> insertSAPMaterialInfo(SAPResultVo resultVo){
public ArrayList<BaseMaterialInfo> insertSAPMaterialInfo(SAPResultVo resultVo) {
ArrayList<BaseMaterialInfo> baseMaterialInfoArrayList = new ArrayList<>();
List<HashMap<String, String>> itemList = resultVo.getO_TAB().get("item");
for (HashMap<String, String> map : itemList) {
BaseMaterialInfo baseMaterialInfo = new BaseMaterialInfo();
baseMaterialInfo.setMaterialCode(map.get("MATNR"));
List<BaseMaterialInfo> baseMaterialInfoList = baseMaterialInfoService.selectBaseMaterialInfoList(baseMaterialInfo);
if (!baseMaterialInfoList.isEmpty()){
if (!baseMaterialInfoList.isEmpty()) {
BaseMaterialInfo materialInfo = new BaseMaterialInfo();
materialInfo.setMaterialCode(map.get("MATNR"));
materialInfo.setMaterialName(map.get("MAKTX"));
@ -74,26 +76,24 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/**
*
*
* */
*/
@Override
public ArrayList<BaseOrderInfo> insertSAPBaseOrderInfo(SAPResultVo resultVo) throws ParseException {
ArrayList<BaseOrderInfo> baseOrderInfoList = new ArrayList<>();
List<HashMap<String, String>> itemList = resultVo.getO_TAB().get("item");
for (HashMap<String, String> map : itemList) {
String aufnr = map.get("AUFNR");
BaseOrderInfo boInfo = new BaseOrderInfo();
boInfo.setOrderCode(aufnr);
List<BaseOrderInfo> baseOrderInfos = baseOrderInfoService.selectBaseOrderInfoList(boInfo);
if (baseOrderInfos.isEmpty()){
if (baseOrderInfos.isEmpty()) {
BaseOrderInfo baseOrderInfo = new BaseOrderInfo();
baseOrderInfo.setOrderCode(map.get("AUFNR"));
baseOrderInfo.setOrderStatus(map.get("STTXT"));
baseOrderInfo.setSaleOrderCode(map.get("KDAUF"));
baseOrderInfo.setMaterialCode(map.get("MATNR"));
baseOrderInfo.setMaterialName(map.get("MAKTX"));
if (!map.get("GAMNG").equals(null)){
if (!map.get("GAMNG").equals(null)) {
baseOrderInfo.setOrderAmount(Long.valueOf(map.get("GAMNG")));
}
baseOrderInfo.setFactoryCode(map.get("WERKS"));
@ -114,6 +114,7 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/**
*
*
* @param resultVo
* @return
*/
@ -126,7 +127,7 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
device.setDeviceCode(map.get("EQUNR"));
List<BaseDeviceLedger> baseDeviceLedgers = baseDeviceLedgerService.selectBaseDeviceLedgerList(device);
if (!baseDeviceLedgers.isEmpty()){
if (!baseDeviceLedgers.isEmpty()) {
BaseDeviceLedger deviceLedger = new BaseDeviceLedger();
deviceLedger.setCostCenter(map.get("KOSTL"));//
deviceLedger.setFactoryCode(map.get("IWERK"));
@ -137,7 +138,6 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
deviceLedger.setDeviceCode(map.get("EQUNR"));//
deviceLedger.setUsedDepartment(map.get("NAME1"));
deviceLedger.setCreatedTime(DateUtils.getNowDate());
baseDeviceLedgerService.insertBaseDeviceLedger(deviceLedger);
baseDeviceLedgerArrayList.add(deviceLedger);
}

@ -27,18 +27,7 @@ public class SAPTask {
* @param days
*/
public void SAPMaterialDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days);
String endDate = DateUtils.getDate();
SAPPortDto sapPortDto = new SAPPortDto();
WERKSDto werksDto = new WERKSDto();
List<HashMap<String, String>> factoryList = new ArrayList<>();
HashMap<String, String> hashMap = new HashMap<>();
sapPortDto.setStartDate(startDate);
sapPortDto.setEndDate(endDate);
hashMap.put("WERKS", factoryCode);
factoryList.add(hashMap);
werksDto.setItem(factoryList);
sapPortDto.setFactoryCodes(werksDto);
SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, days);
portService.getSAPMaterialData(sapPortDto);
}
@ -48,19 +37,7 @@ public class SAPTask {
* @param days
*/
public void SAPProduceWorkTicketsDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days);
String endDate = DateUtils.getDate();
SAPPortDto sapPortDto = new SAPPortDto();
WERKSDto werksDto = new WERKSDto();
List<HashMap<String, String>> factoryList = new ArrayList<>();
HashMap<String, String> hashMap = new HashMap<>();
sapPortDto.setStartDate(startDate);
sapPortDto.setEndDate(endDate);
hashMap.put("WERKS", factoryCode);
factoryList.add(hashMap);
werksDto.setItem(factoryList);
sapPortDto.setFactoryCodes(werksDto);
// System.out.println("调用2");
SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, days);
portService.getSapBaseOrderInfo(sapPortDto);
}
/**
@ -69,19 +46,7 @@ public class SAPTask {
* @param days
*/
public void SAPDeviceLedgerDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days);
String endDate = DateUtils.getDate();
SAPPortDto sapPortDto = new SAPPortDto();
WERKSDto werksDto = new WERKSDto();
List<HashMap<String, String>> factoryList = new ArrayList<>();
HashMap<String, String> hashMap = new HashMap<>();
sapPortDto.setStartDate(startDate);
sapPortDto.setEndDate(endDate);
hashMap.put("WERKS", factoryCode);
factoryList.add(hashMap);
werksDto.setItem(factoryList);
sapPortDto.setFactoryCodes(werksDto);
// System.out.println("调用3");
SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, days);
portService.getSapDeviceLedgers(sapPortDto);
}
@ -91,6 +56,18 @@ public class SAPTask {
* @param days
*/
public void SAPBaseBomInfoDataTask(String factoryCode, Long days) {
SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, days);
portService.getSapOrderBomInfo(sapPortDto);
}
/**
* SAP
* @param factoryCode
* @param days
* @return
*/
public SAPPortDto SAPRequestDataAssembly(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days);
String endDate = DateUtils.getDate();
SAPPortDto sapPortDto = new SAPPortDto();
@ -103,9 +80,7 @@ public class SAPTask {
factoryList.add(hashMap);
werksDto.setItem(factoryList);
sapPortDto.setFactoryCodes(werksDto);
// System.out.println("调用4");
portService.getSapOrderBomInfo(sapPortDto);
return sapPortDto;
}
}

@ -0,0 +1,41 @@
package com.aucma.api.utils;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import java.util.Base64;
/**
* @Author YinQ
* @create 2023-10-12 10:52
*/
public class ApiUtils {
/**
* POSTjson
* @param apiUrl
* @param jsonData
* @return
*/
public static String sendSAPHttpPost(String apiUrl, String jsonData) {
try {
// 构建POST请求
HttpRequest request = HttpRequest.post(apiUrl)
.header("Authorization", "Basic " + Base64.getUrlEncoder().
encodeToString((SAPConstants.USER_NAME + ":" + SAPConstants.PASS_WORD).getBytes()))
.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 SAP HTTP POST request: " + e.getMessage(), e);
}
}
}

@ -16,6 +16,16 @@ public class SAPConstants {
*/
public static String SAP_PREFIX_URL;
/**
* SAP-
*/
public static String USER_NAME;
/**
* SAP-
*/
public static String PASS_WORD;
/**
* (MES2019)
*/
@ -42,6 +52,14 @@ public class SAPConstants {
SAP_PREFIX_URL = value;
}
@Value("${sap.username}")
public void setUserName(String value) {
USER_NAME = value;
}
@Value("${sap.password}")
public void setPassWord(String value) {
PASS_WORD = value;
}
}

@ -133,7 +133,7 @@ public class ProductPlanInfoServiceImpl implements IProductPlanInfoService
BaseBomInfo bomInfo = new BaseBomInfo();
bomInfo.setParentId(baseOrderInfo.getMaterialCode());
List<BaseBomInfo> baseBomInfoList = baseBomInfoService.selectBaseBomInfoList(bomInfo);
//若一个工单可下达多计划:则需要根据工单编号和物料编号去重
//检查生产BOM是否满足下计划条件
baseBomInfoService.checkBomInfo(baseBomInfoList);

Loading…
Cancel
Save