change - sap接口鉴权

master
yinq 2 years ago
parent 28412ffeef
commit c7b35364d7

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

@ -19,7 +19,10 @@ server:
# SAP接口 # SAP接口
sap: sap:
# URL前缀 # 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: spring:
@ -64,6 +67,7 @@ spring:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:oracle:thin:@175.27.215.92:1521/helowin url: jdbc:oracle:thin:@175.27.215.92:1521/helowin
# url: jdbc:oracle:thin:@192.168.80.10:1521/orcl
username: aucma_mes username: aucma_mes
password: aucma password: aucma
# 从库数据源 # 从库数据源

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

@ -9,7 +9,6 @@ import com.aucma.base.domain.BaseOrderInfo;
import com.aucma.base.domain.OrderBomInfo; import com.aucma.base.domain.OrderBomInfo;
import com.aucma.common.core.controller.BaseController; import com.aucma.common.core.controller.BaseController;
import com.aucma.common.core.domain.AjaxResult; import com.aucma.common.core.domain.AjaxResult;
import com.aucma.production.domain.BaseBomInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -48,9 +47,12 @@ public class SAPPortController extends BaseController {
List<BaseMaterialInfo> materialVoList = sapPortService.getSAPMaterialData(sapPortDto); List<BaseMaterialInfo> materialVoList = sapPortService.getSAPMaterialData(sapPortDto);
return AjaxResult.success(materialVoList); return AjaxResult.success(materialVoList);
} }
/** /**
* *
* */ * @param paramMap
* @return
*/
@PostMapping ("/getProduceWorkTickets") @PostMapping ("/getProduceWorkTickets")
public AjaxResult getProduceWorkTickets(@RequestBody Map paramMap){ public AjaxResult getProduceWorkTickets(@RequestBody Map paramMap){
SAPPortDto sapPortDto = new SAPPortDto(); SAPPortDto sapPortDto = new SAPPortDto();
@ -62,9 +64,9 @@ public class SAPPortController extends BaseController {
sapPortDto.setFactoryCodes(werksDto); sapPortDto.setFactoryCodes(werksDto);
sapPortService.getSapBaseOrderInfo(sapPortDto); sapPortService.getSapBaseOrderInfo(sapPortDto);
List<BaseOrderInfo> BaseOrderInfoVoList = sapPortService.getSapBaseOrderInfo(sapPortDto); List<BaseOrderInfo> BaseOrderInfoVoList = sapPortService.getSapBaseOrderInfo(sapPortDto);
return AjaxResult.success(BaseOrderInfoVoList); return AjaxResult.success(BaseOrderInfoVoList);
} }
/** /**
* *
* @param paramMap * @param paramMap
@ -82,9 +84,12 @@ public class SAPPortController extends BaseController {
List<BaseDeviceLedger> BaseDeviceLedgerVoList = sapPortService.getSapDeviceLedgers(sapPortDto); List<BaseDeviceLedger> BaseDeviceLedgerVoList = sapPortService.getSapDeviceLedgers(sapPortDto);
return AjaxResult.success(BaseDeviceLedgerVoList); return AjaxResult.success(BaseDeviceLedgerVoList);
} }
/** /**
* bom * bom
* */ * @param paramMap
* @return
*/
@PostMapping("/getBaseBomInfo") @PostMapping("/getBaseBomInfo")
public AjaxResult getBaseBomInfo(@RequestBody Map paramMap) { public AjaxResult getBaseBomInfo(@RequestBody Map paramMap) {
SAPPortDto sapPortDto = new SAPPortDto(); 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); List<BaseMaterialInfo> getSAPMaterialData(SAPPortDto sapPortDto);
/**
*
* @param sapPortDto
* @return
*/
List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto); List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto);
/**
*
* @param sapPortDto
* @return
*/
List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto); List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto);
/**
* bom
* @param sapPortDto
* @return
*/
List<OrderBomInfo> getSapOrderBomInfo(SAPPortDto sapPortDto); 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.domain.vo.SAPResultVo;
import com.aucma.api.service.ISAPPortService; import com.aucma.api.service.ISAPPortService;
import com.aucma.api.service.ISAPPutStorageService; import com.aucma.api.service.ISAPPutStorageService;
import com.aucma.api.utils.ApiUtils;
import com.aucma.api.utils.SAPConstants; import com.aucma.api.utils.SAPConstants;
import com.aucma.base.domain.BaseDeviceLedger; import com.aucma.base.domain.BaseDeviceLedger;
import com.aucma.base.domain.BaseMaterialInfo; import com.aucma.base.domain.BaseMaterialInfo;
@ -57,7 +58,7 @@ public class SAPPortServiceImpl implements ISAPPortService {
// 格式化输出 // 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); // objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto); 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\"}]}}"; // 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(); ObjectMapper resultMapper = new ObjectMapper();
@ -79,6 +80,11 @@ public class SAPPortServiceImpl implements ISAPPortService {
return materialVos; return materialVos;
} }
/**
*
* @param sapPortDto
* @return
*/
@Override @Override
public List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto) { public List<BaseOrderInfo> getSapBaseOrderInfo(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate(); String startDate = sapPortDto.getStartDate();
@ -94,13 +100,10 @@ public class SAPPortServiceImpl implements ISAPPortService {
try{ try{
// 创建ObjectMapper实例 对象转JSON字符串 // 创建ObjectMapper实例 对象转JSON字符串
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
// 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto); requestParam = objectMapper.writeValueAsString(sapPortDto);
//发送post请求 调用获取工单接口 //发送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(); ObjectMapper resultMapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象 // 将 JSON 字符串转换为 Java 对象
SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class); 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()); PortLogUtils.savePortLog(werks.getItem().get(0).get("WERKS"), "获取生产工单" + intervalDate, "getSAPBaseOrderInfo", requestParam, result, e.toString());
} }
return baseOrderInfoVos; return baseOrderInfoVos;
} }
/**
*
* @param sapPortDto
* @return
*/
@Override @Override
public List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto) { public List<BaseDeviceLedger> getSapDeviceLedgers(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate(); String startDate = sapPortDto.getStartDate();
@ -143,15 +144,9 @@ public class SAPPortServiceImpl implements ISAPPortService {
try { try {
// 创建ObjectMapper实例 对象转JSON字符串 // 创建ObjectMapper实例 对象转JSON字符串
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
// 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto); 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(); ObjectMapper resultMapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象 // 将 JSON 字符串转换为 Java 对象
SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class); SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class);
@ -171,6 +166,11 @@ public class SAPPortServiceImpl implements ISAPPortService {
return baseDeviceLedgersVos; return baseDeviceLedgersVos;
} }
/**
* bom
* @param sapPortDto
* @return
*/
@Override @Override
public List<OrderBomInfo> getSapOrderBomInfo(SAPPortDto sapPortDto) { public List<OrderBomInfo> getSapOrderBomInfo(SAPPortDto sapPortDto) {
String startDate = sapPortDto.getStartDate(); String startDate = sapPortDto.getStartDate();
@ -189,20 +189,15 @@ public class SAPPortServiceImpl implements ISAPPortService {
// 格式化输出 // 格式化输出
// objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); // objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
requestParam = objectMapper.writeValueAsString(sapPortDto); 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(); ObjectMapper resultMapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象 // 将 JSON 字符串转换为 Java 对象
SAPResultBomVo resultVo = resultMapper.readValue(result, SAPResultBomVo.class); SAPResultBomVo resultVo = resultMapper.readValue(result, SAPResultBomVo.class);
//判断返回数据是否正确 //判断返回数据是否正确
// if (StringUtils.isNull(resultVo.getO_RETURN()) || !"0".equals(resultVo.getO_RETURN().get(0).get("ID"))){ if (StringUtils.isNull(resultVo.getO_RETURN()) || !"0".equals(resultVo.getO_RETURN().getItem().get(0).get("ID"))){
// throw new BaseException("处理接口返回消息错误ID不为0或O_RETURN为空"); throw new BaseException("处理接口返回消息错误ID不为0或O_RETURN为空");
// } }
//转物料实体类 保存数据 //转物料实体类 保存数据
orderBomInfosVos = storageService.insertSAPOrderBomInfo(resultVo); orderBomInfosVos = storageService.insertSAPOrderBomInfo(resultVo);
//保存接口日志 //保存接口日志

@ -29,6 +29,7 @@ import java.util.List;
/** /**
* SAP * SAP
*
* @Author YinQ * @Author YinQ
* @create 2023-09-27 15:07 * @create 2023-09-27 15:07
*/ */
@ -48,6 +49,7 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/** /**
* *
*
* @param resultVo * @param resultVo
* @return * @return
*/ */
@ -74,14 +76,12 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/** /**
* *
* */
* */
@Override @Override
public ArrayList<BaseOrderInfo> insertSAPBaseOrderInfo(SAPResultVo resultVo) throws ParseException { public ArrayList<BaseOrderInfo> insertSAPBaseOrderInfo(SAPResultVo resultVo) throws ParseException {
ArrayList<BaseOrderInfo> baseOrderInfoList = new ArrayList<>(); ArrayList<BaseOrderInfo> baseOrderInfoList = new ArrayList<>();
List<HashMap<String, String>> itemList = resultVo.getO_TAB().get("item"); List<HashMap<String, String>> itemList = resultVo.getO_TAB().get("item");
for (HashMap<String, String> map : itemList) { for (HashMap<String, String> map : itemList) {
String aufnr = map.get("AUFNR"); String aufnr = map.get("AUFNR");
BaseOrderInfo boInfo = new BaseOrderInfo(); BaseOrderInfo boInfo = new BaseOrderInfo();
boInfo.setOrderCode(aufnr); boInfo.setOrderCode(aufnr);
@ -114,6 +114,7 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
/** /**
* *
*
* @param resultVo * @param resultVo
* @return * @return
*/ */
@ -137,7 +138,6 @@ public class SAPPutStorageServiceImpl implements ISAPPutStorageService {
deviceLedger.setDeviceCode(map.get("EQUNR"));// deviceLedger.setDeviceCode(map.get("EQUNR"));//
deviceLedger.setUsedDepartment(map.get("NAME1")); deviceLedger.setUsedDepartment(map.get("NAME1"));
deviceLedger.setCreatedTime(DateUtils.getNowDate()); deviceLedger.setCreatedTime(DateUtils.getNowDate());
baseDeviceLedgerService.insertBaseDeviceLedger(deviceLedger); baseDeviceLedgerService.insertBaseDeviceLedger(deviceLedger);
baseDeviceLedgerArrayList.add(deviceLedger); baseDeviceLedgerArrayList.add(deviceLedger);
} }

@ -27,18 +27,7 @@ public class SAPTask {
* @param days * @param days
*/ */
public void SAPMaterialDataTask(String factoryCode, Long days) { public void SAPMaterialDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days); SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, 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);
portService.getSAPMaterialData(sapPortDto); portService.getSAPMaterialData(sapPortDto);
} }
@ -48,19 +37,7 @@ public class SAPTask {
* @param days * @param days
*/ */
public void SAPProduceWorkTicketsDataTask(String factoryCode, Long days) { public void SAPProduceWorkTicketsDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days); SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, 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");
portService.getSapBaseOrderInfo(sapPortDto); portService.getSapBaseOrderInfo(sapPortDto);
} }
/** /**
@ -69,19 +46,7 @@ public class SAPTask {
* @param days * @param days
*/ */
public void SAPDeviceLedgerDataTask(String factoryCode, Long days) { public void SAPDeviceLedgerDataTask(String factoryCode, Long days) {
String startDate = DateUtils.convertDaysToDateString(days); SAPPortDto sapPortDto = this.SAPRequestDataAssembly(factoryCode, 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");
portService.getSapDeviceLedgers(sapPortDto); portService.getSapDeviceLedgers(sapPortDto);
} }
@ -91,6 +56,18 @@ public class SAPTask {
* @param days * @param days
*/ */
public void SAPBaseBomInfoDataTask(String factoryCode, Long 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 startDate = DateUtils.convertDaysToDateString(days);
String endDate = DateUtils.getDate(); String endDate = DateUtils.getDate();
SAPPortDto sapPortDto = new SAPPortDto(); SAPPortDto sapPortDto = new SAPPortDto();
@ -103,9 +80,7 @@ public class SAPTask {
factoryList.add(hashMap); factoryList.add(hashMap);
werksDto.setItem(factoryList); werksDto.setItem(factoryList);
sapPortDto.setFactoryCodes(werksDto); sapPortDto.setFactoryCodes(werksDto);
// System.out.println("调用4"); return sapPortDto;
portService.getSapOrderBomInfo(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; public static String SAP_PREFIX_URL;
/**
* SAP-
*/
public static String USER_NAME;
/**
* SAP-
*/
public static String PASS_WORD;
/** /**
* (MES2019) * (MES2019)
*/ */
@ -42,6 +52,14 @@ public class SAPConstants {
SAP_PREFIX_URL = value; 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(); BaseBomInfo bomInfo = new BaseBomInfo();
bomInfo.setParentId(baseOrderInfo.getMaterialCode()); bomInfo.setParentId(baseOrderInfo.getMaterialCode());
List<BaseBomInfo> baseBomInfoList = baseBomInfoService.selectBaseBomInfoList(bomInfo); List<BaseBomInfo> baseBomInfoList = baseBomInfoService.selectBaseBomInfoList(bomInfo);
//若一个工单可下达多计划:则需要根据工单编号和物料编号去重
//检查生产BOM是否满足下计划条件 //检查生产BOM是否满足下计划条件
baseBomInfoService.checkBomInfo(baseBomInfoList); baseBomInfoService.checkBomInfo(baseBomInfoList);

Loading…
Cancel
Save