From df21d00b9827ef4453112e00de786be18ef9bdcd Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Wed, 30 Oct 2024 10:23:05 +0800 Subject: [PATCH] =?UTF-8?q?SAP=E7=99=BD=E5=9D=AF=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/controller/SapController.java | 16 +++++ .../com/op/sap/mapper/SapDeviceMapper.java | 8 +++ .../com/op/sap/service/SapDeviceService.java | 10 +++ .../op/sap/service/SapItemSyncService.java | 2 + .../service/impl/SapDeviceServiceImpl.java | 72 +++++++++++++++++++ .../op/sap/service/impl/SapItemSyncImpl.java | 49 ++++++++++++- 6 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 op-modules/op-sap/src/main/java/com/op/sap/mapper/SapDeviceMapper.java create mode 100644 op-modules/op-sap/src/main/java/com/op/sap/service/SapDeviceService.java create mode 100644 op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapDeviceServiceImpl.java diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index f440d1036..ed2cb9fb1 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -66,6 +66,9 @@ public class SapController extends BaseController { @Autowired private SapWmsService sapWmsService; + @Autowired + private SapDeviceService sapDeviceService; + @Resource private DynamicDatasourceCreator dynamicDatasourceCreator; @Resource @@ -522,6 +525,13 @@ public class SapController extends BaseController { return sapItemSyncService.sap105temporarilyCollected(mapList); } +/*******************设备*****************/ + @PostMapping("/sapZmesAnlaGet") + @Log(title = "设备同步接口", businessType = BusinessType.SAP) + public R sapZmesAnlaGet(@RequestBody(required = false) Map paramMap) { + return sapDeviceService.sapZmesAnlaGet(paramMap); + } + @PostMapping("/addDatasource") public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ DataSourceProperty dataSourceProperty = new DataSourceProperty(); @@ -538,5 +548,11 @@ public class SapController extends BaseController { return R.ok(); } + //白坯的未清采购订单数量 ZMES_PURWQ_GET + @PostMapping("/ZmesPurwqGet") + @Log(title = "白坯的未清采购订单数量", businessType = BusinessType.SAP) + public R ZmesPurwqGet(@RequestBody(required = false) Map paramMap) { + return sapItemSyncService.ZmesPurwqGet(paramMap); + } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapDeviceMapper.java b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapDeviceMapper.java new file mode 100644 index 000000000..30d688499 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapDeviceMapper.java @@ -0,0 +1,8 @@ +package com.op.sap.mapper; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SapDeviceMapper { + +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapDeviceService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapDeviceService.java new file mode 100644 index 000000000..4eb4851f4 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapDeviceService.java @@ -0,0 +1,10 @@ +package com.op.sap.service; + +import com.op.common.core.domain.R; + +import java.util.Map; + +public interface SapDeviceService { + + R sapZmesAnlaGet(Map paramMap); +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java index 7c1469b14..594f77326 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java @@ -40,4 +40,6 @@ public interface SapItemSyncService { R temporarilyCollected(List mapList); R sap105temporarilyCollected(List mapList); + + R ZmesPurwqGet(Map paramMap); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapDeviceServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapDeviceServiceImpl.java new file mode 100644 index 000000000..ac6ae6396 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapDeviceServiceImpl.java @@ -0,0 +1,72 @@ +package com.op.sap.service.impl; + + +import com.alibaba.fastjson2.JSONObject; +import com.op.common.core.constant.Constants; +import com.op.common.core.domain.R; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.sap.mapper.SapDeviceMapper; +import com.op.sap.service.SapDeviceService; +import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; +import com.sap.conn.jco.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import javax.validation.Validator; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Component +@Service +public class SapDeviceServiceImpl implements SapDeviceService { + @Autowired + private SapDeviceMapper sapDeviceMapper; + @Autowired + protected Validator validator; + + @Autowired + private JCoDestination dest; + + private static final Logger log = LoggerFactory.getLogger(SapItemSyncImpl.class); + + + @Override + public R sapZmesAnlaGet(Map paramMap) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_ANLA_GET"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + log.info("设备同步参数-------" + paramMap.toString()); + //参数 + JCoParameterList jCoParameterList = func.getImportParameterList(); + jCoParameterList.setValue("P_SERNR", paramMap.get("P_SERNR")); + func.execute(dest);//执行调用函数 + JCoTable maraTable = func.getTableParameterList().getTable("L_ANLA"); + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + String BUKRS = maraTable.getString("BUKRS"); + String ANLN1 = maraTable.getString("ANLN1"); + String ANLN2 = maraTable.getString("ANLN2"); + String TXT50 = maraTable.getString("TXT50"); + String SERNR = maraTable.getString("SERNR"); + String INVZU = maraTable.getString("INVZU"); + System.out.println("公司代码"+BUKRS+"主资产号"+ANLN1+"资产次级编号"+ANLN2+"资产描述"+TXT50+"序列号"+SERNR+"补充库存说明"+INVZU); + } + return R.ok(); + + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index 0884afda8..83d9b05f8 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -10,6 +10,7 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.bean.BeanValidators; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; +import com.op.sap.domain.vo.SapWBDemand; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.op.system.api.domain.sap.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; @@ -208,7 +209,7 @@ public class SapItemSyncImpl implements SapItemSyncService { baseProduct.setUpdateBy(SecurityUtils.getUsername()); sapBaseProductList.add(baseProduct); } - //this.importProducts(sapBaseProductList) + return R.ok(this.importProducts(sapBaseProductList,sapItemQuery.getWerks())); } catch (Exception e) { return R.fail(e.getMessage()); @@ -809,5 +810,51 @@ public class SapItemSyncImpl implements SapItemSyncService { } } + @Override + public R ZmesPurwqGet(Map paramMap) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZMES_PURWQ_GET"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + log.info("白坯的未清采购订单数量-------" + paramMap.toString()); + //参数 + JCoParameterList jCoParameterList = func.getImportParameterList(); + jCoParameterList.setValue("P_WERKS", paramMap.get("werks")); + func.execute(dest);//执行调用函数 + JCoTable maraTable = func.getTableParameterList().getTable("LT_PURWQ"); + String RETCODE = func.getExportParameterList().getString("RETCODE"); + String RETMSG = func.getExportParameterList().getString("RETMSG"); + List sapWBDemandList=new ArrayList<>(); + + if(Constants.LOGIN_SUCCESS_STATUS.equals(RETCODE)){ + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + SapWBDemand sapWBDemand=new SapWBDemand(); + String WERKS = maraTable.getString("WERKS");///工厂 + String MATNR = maraTable.getString("MATNR");//物料号 + String MAKTX = maraTable.getString("MAKTX");//物料描述 + Double MENGE = maraTable.getDouble("MENGE");//数量 + String MEINS = maraTable.getString("MEINS");//单位 + Date BEDAT = maraTable.getDate("BEDAT");//最早的采购订单日期 + sapWBDemand.setWerks(WERKS); + sapWBDemand.setMatnr(MATNR); + sapWBDemand.setMaktx(MAKTX); + sapWBDemand.setMenge(MENGE); + sapWBDemand.setMeins(MEINS); + sapWBDemand.setBedat(BEDAT); + sapWBDemandList.add(sapWBDemand); + } + return R.ok(sapWBDemandList,RETMSG); + }else { + return R.fail(RETMSG); + } + + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } }