diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPosting.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPosting.java index 993e1c3f..cc076d4a 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPosting.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPosting.java @@ -1,127 +1,26 @@ package com.op.system.api.domain.sap; -//智慧工厂-订单物料领料过账、原材料补料、订单物料退料过账(MB1A) -/** - AUFNR CHAR 12 0 订单号 必填 - BWART CHAR 3 0 移动类型(库存管理) 必填 - PLANT CHAR 4 0 工厂 必填 - GL_ACCOUNT CHAR 10 0 总帐科目编号 选填 - COSTCENTER CHAR 10 0 成本中心 选填 - GR_RCPT CHAR 12 0 收货方/运达方 选填 - LGORT CHAR 4 0 库存地点 必填 - MATNR CHAR 18 0 物料号 必填 - QUANTITY QUAN 13 3 数量 必填 - MEINS UNIT 3 0 基本计量单位 必填 - BATCH CHAR 10 0 批号 选填 +import java.util.List; +import java.util.Map; - */ public class SapMaterialPosting { + private List> mapList; + private String postingType; - - - /** - * 订单物料领料过账、原材料补料的移动类型值为261 - * 订单物料退料过账为262 - * - */ - private String aufnr; - private String bwart; - private String plant; - private String gl_account; - private String costcenter; - private String gr_rcpt; - private String lgort; - private String matnr; - private String quantity; - private String meins; - private String batch; - - public String getGl_account() { - return gl_account; - } - - public void setGl_account(String gl_account) { - this.gl_account = gl_account; - } - - public String getCostcenter() { - return costcenter; - } - - public void setCostcenter(String costcenter) { - this.costcenter = costcenter; - } - - public String getGr_rcpt() { - return gr_rcpt; - } - - public void setGr_rcpt(String gr_rcpt) { - this.gr_rcpt = gr_rcpt; - } - - public String getAufnr() { - return aufnr; - } - - public void setAufnr(String aufnr) { - this.aufnr = aufnr; - } - - public String getBwart() { - return bwart; - } - - public void setBwart(String bwart) { - this.bwart = bwart; - } - - public String getPlant() { - return plant; - } - - public void setPlant(String plant) { - this.plant = plant; - } - - public String getLgort() { - return lgort; - } - - public void setLgort(String lgort) { - this.lgort = lgort; - } - - public String getMatnr() { - return matnr; - } - - public void setMatnr(String matnr) { - this.matnr = matnr; - } - - public String getQuantity() { - return quantity; - } - - public void setQuantity(String quantity) { - this.quantity = quantity; - } - - public String getMeins() { - return meins; + public List> getMapList() { + return mapList; } - public void setMeins(String meins) { - this.meins = meins; + public void setMapList(List> mapList) { + this.mapList = mapList; } - public String getBatch() { - return batch; + public String getPostingType() { + return postingType; } - public void setBatch(String batch) { - this.batch = batch; + public void setPostingType(String postingType) { + this.postingType = postingType; } } diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java b/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java index 55d6df0a..00b9fb8b 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/constant/Constants.java @@ -143,10 +143,10 @@ public class Constants { */ //退料 - public static final Integer TL=262; + public static final String TL="262"; //领料 - public static final Integer LL=261; + public static final String LL="261"; //ZL0010-来料检验不合格控制流程 @@ -155,4 +155,6 @@ public class Constants { //ZL0020-成品检验控制流程 public static final Integer WORKFLOWID_ZL0020=26234; + //ZL0030-品质异常流程 + public static final Integer WORKFLOWID_ZL0030=26256; } diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index 4d09ae01..bd19fc1f 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -111,16 +111,16 @@ public class OpenController extends BaseController { return success(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); } - /** - * ZL0010-来料检验不合格控制流程提交 :"workflowId": 26235 + /**===============ZL0010-来料检验不合格控制流程提交 :"workflowId": 26235============= + * * * CQ 厂区、 OEMCM 厂名 、 LLLB 来料类别【0、1】、MATNR 物料编号、MAKTX 物料名称、suppliernum 供应商编码 * supplier 供应商名称、CHARG 生产批号、comeQty 来料数量、testDate 检验日期 、 JYBH 检验编号、 * BJY 仓储报检人(OEM产品提报人)、WLLY 物料来源、ZCF 转出方、 ZCOEMCM 转出OEM厂名、 * memo 不合格情况描述 、PZGLBZG QC主管 * - * ------------------------------------------------------------- - * ZL0020-成品检验控制流程:"workflowId": 26234 + * =========================ZL0020-成品检验控制流程:"workflowId": 26234================================= + * * * --------主表------- * PGBCJ 申请部门/SSCJ 所属车间/ZRPSN报检人/GJZ关键字/SCLX生产类型/OEM OEM厂名/DH 单号/DW单位/MEMO01 不合格描述/ @@ -131,6 +131,11 @@ public class OpenController extends BaseController { * PROCODE 产品编码、PRONAME 产品名称、SCCODE 批次号、SCTOTAL 数量、 * BJDATE 报检日期、JYCODE 检验编号、JYDATE 检验日期、JYRESULT检验结果:0合格 2不合格、 * PROCODEBAK 、BZ 备注、CPCYS 产品抽样数(PC)、JYBHGMS 不合格情况描述 + * + * =========================ZL0030-品质异常流程 :"workflowId": 26256 + * 产品名称 CPMC、产品编码 CPBM、申请部门 SQBM、申请人 SQR、申请时间 SQSJ、所属车间 SCCJ、生产批号 SCPH、生产数量 SCSL + * 发现地点 FXDD、发现日期 FXRQ、编号 BH、异常范围 YCFW、品质异常描述 PZYCMS、备注 Notes、是否需要主管审核 SFXYZG、QC主管 PGZG、 + * 质量主管 PGZR、是否供应商问题 SFGYSWT * @param paramMap * @return */ 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 ac38e60d..6c2c1040 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 @@ -381,17 +381,17 @@ public class SapController extends BaseController { /** - * 退料的移动类型为 262 - * 领料的移动类型为 261 - * @param sapMaterialPostingList + * 订单物料领料 261 + * 订单物料退料 262 + * ZMES_261_MB1A + * ZMES_262_MB1A + * @param sapMaterialPosting * @return */ - - @PostMapping("/sapMaterialPosting") - @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) - public R sapMaterialPosting(@RequestBody List sapMaterialPostingList){ - return sapItemSyncService.sapMaterialPosting(sapMaterialPostingList); + @Log(title = "订单物料过账", businessType = BusinessType.SAP) + public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ + return sapItemSyncService.sapMaterialPosting(sapMaterialPosting); } 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 3fd0c490..b57982ab 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 @@ -6,6 +6,7 @@ import com.op.sap.domain.vo.SapItemQuery; import com.op.system.api.domain.sap.SapMaterialPosting; import java.util.List; +import java.util.Map; /** * 杨万里 2023年8月 @@ -20,11 +21,12 @@ public interface SapItemSyncService { /** * 订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A) - * @param sapMaterialPostingList + * @param sapMaterialPosting * @return */ - R sapMaterialPosting(List sapMaterialPostingList); + R sapMaterialPosting(SapMaterialPosting sapMaterialPosting); R sapBackflushMP(List sapBackflushMPQueryList); + } 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 0aaedb3c..9d6b7d2e 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 @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; import javax.validation.Validator; import java.math.BigDecimal; @@ -225,77 +226,51 @@ public class SapItemSyncImpl implements SapItemSyncService { } @Override - public R sapMaterialPosting(List sapMaterialPostingList) { + public R sapMaterialPosting(SapMaterialPosting sapMaterialPosting) { try { // 获取调用 RFC 函数对象 //获取连接 // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); - JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE"); + JCoFunction func=null; + if (Constants.LL.equals(sapMaterialPosting.getPostingType())){ + func = repository.getFunction("ZMES_261_MB1A"); + log.info("订单物料领料开始过账--------------------------"); + }else if (Constants.TL.equals(sapMaterialPosting.getPostingType())){ + func = repository.getFunction("ZMES_262_MB1A"); + log.info("订单物料退料开始过账--------------------------"); + } if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } - log.info("订单物料开始过账----------------------------------------"); + // 配置传入参数 JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); - - for (SapMaterialPosting smp:sapMaterialPostingList){ + for (Map stringObjectMap:sapMaterialPosting.getMapList()) { L_ITEM.appendRow(); - //订单号 - L_ITEM.setValue("AUFNR",smp.getAufnr()); - //移动类型 - L_ITEM.setValue("BWART",smp.getBwart()); - //工厂 - L_ITEM.setValue("PLANT",smp.getPlant()); - //总帐科目编号 - L_ITEM.setValue("GL_ACCOUNT",smp.getGl_account()); - //成本中心 - L_ITEM.setValue("COSTCENTER",smp.getCostcenter()); - //收货方/运达方 - L_ITEM.setValue("GR_RCPT",smp.getGr_rcpt()); - //库存地点 - L_ITEM.setValue("LGORT",smp.getLgort()); - //物料号 - L_ITEM.setValue("MATNR",smp.getMatnr()); - //数量 - L_ITEM.setValue("QUANTITY",smp.getQuantity()); - //基本计量单位 - L_ITEM.setValue("MEINS",smp.getMeins()); - //批号 - L_ITEM.setValue("BATCH",smp.getBatch()); - - - } - func.execute(dest); - JCoTable maraTable = func.getTableParameterList().getTable("LT_RETURN"); - JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - System.out.println("###" + metaData.toString()); - StringBuilder Msg = new StringBuilder(); - for (int i = 0; i < maraTable.getNumRows(); i++) { - maraTable.setRow(i); - String TYPE = maraTable.getString("TYPE"); - String MESSAGE = maraTable.getString("MESSAGE"); - Msg.append(MESSAGE+"/"); - System.out.println("TYPE:"+TYPE); - System.out.println("MESSAGE:"+MESSAGE); + L_ITEM.setValue("AUFNR", stringObjectMap.get("AUFNR")); + L_ITEM.setValue("PLANT", stringObjectMap.get("PLANT")); + L_ITEM.setValue("LGORT", stringObjectMap.get("LGORT")); + L_ITEM.setValue("MATNR", stringObjectMap.get("MATNR")); + L_ITEM.setValue("QUANTITY", stringObjectMap.get("QUANTITY")); + L_ITEM.setValue("MEINS", stringObjectMap.get("MEINS")); } - String L_MSG= func.getExportParameterList().getString("L_MSG"); + func.execute(dest);//执行调用函数 + System.out.println(func.getExportParameterList()); String RETCODE= func.getExportParameterList().getString("RETCODE"); + String MESSAGE= func.getExportParameterList().getString("L_MSG"); String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT"); String MATDOCUMENTYEAR= func.getExportParameterList().getString("MATDOCUMENTYEAR"); - System.out.println("L_MSG"+L_MSG); - - System.out.println("返回值:0-没有错误,1-有错误:"+RETCODE); - System.out.println("物料凭证编号"+MATERIALDOCUMENT); - System.out.println("物料凭证年度"+MATDOCUMENTYEAR); - if (!("0").equals(RETCODE)){ - return R.fail("",Msg.toString()); + if ((Constants.LOGIN_FAIL_STATUS).equals(RETCODE)){ + log.error("订单收货结果-----"+MESSAGE); + return R.fail(MESSAGE); }else { - Map map=new HashMap(); - map.put("MATERIALDOCUMENT",MATERIALDOCUMENT); - map.put("MATDOCUMENTYEAR",MATDOCUMENTYEAR); - return R.ok(map,Msg.toString()); + log.info("订单收货结果-----"+MESSAGE); + Map Resmap=new HashMap(); + Resmap.put("MATERIALDOCUMENT",MATERIALDOCUMENT); + Resmap.put("MATDOCUMENTYEAR",MATDOCUMENTYEAR); + return R.ok(Resmap,MESSAGE); } }catch (Exception e){ @@ -303,6 +278,8 @@ public class SapItemSyncImpl implements SapItemSyncService { } } + + /** * 反冲物料领料过账 * @param sapBackflushMPQueryList @@ -332,17 +309,17 @@ public class SapItemSyncImpl implements SapItemSyncService { L_ITEM.setValue("BATCH",sfp.getBatch()); L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch()); } + System.out.println(func.getTableParameterList().getTable("L_ITEM")); func.execute(dest); JCoTable maraTable = func.getTableParameterList().getTable("LT_RETURN"); - JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - System.out.println("###" + metaData.toString()); + System.out.println(func.getTableParameterList()); StringBuilder Msg = new StringBuilder(); for (int i = 0; i < maraTable.getNumRows(); i++) { maraTable.setRow(i); String TYPE = maraTable.getString("TYPE"); String MESSAGE = maraTable.getString("MESSAGE"); Msg.append(MESSAGE+"/"); - System.out.println("TYPE:"+TYPE); +// System.out.println("TYPE:"+TYPE); System.out.println("MESSAGE:"+MESSAGE); } String L_MSG= func.getExportParameterList().getString("L_MSG"); @@ -350,7 +327,6 @@ public class SapItemSyncImpl implements SapItemSyncService { String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT"); String MATDOCUMENTYEAR= func.getExportParameterList().getString("MATDOCUMENTYEAR"); System.out.println("L_MSG"+L_MSG); - System.out.println("返回值:0-没有错误,1-有错误:"+RETCODE); System.out.println("物料凭证编号"+MATERIALDOCUMENT); System.out.println("物料凭证年度"+MATDOCUMENTYEAR); @@ -374,10 +350,7 @@ public class SapItemSyncImpl implements SapItemSyncService { } - public static void main(String[] args) { - SapBackflushMPQuery sapBackflushMPQuery=new SapBackflushMPQuery(); - System.out.println(sapBackflushMPQuery.toString()); - } + public String importProducts(List sapBaseProductList){ if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 88f3ff50..8f04090a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -38,6 +38,7 @@ public class SapOrderServiceImpl implements SapOrderService { @Autowired private JCoDestination dest; + @Override public R> shopOrderSync(SapShopOrderQuery sapShopOrderQuery) { @@ -319,7 +320,7 @@ public class SapOrderServiceImpl implements SapOrderService { func.execute(dest);//执行调用函数 JCoParameterList J= func.getExportParameterList(); - //System.out.println(J); + System.out.println(func.getExportParameterList()); String RETCODE= func.getExportParameterList().getString("RETCODE"); MESSAGE= func.getExportParameterList().getString("MESSAGE"); if (Constants.FAIL.equals(RETCODE)){ @@ -505,6 +506,7 @@ public class SapOrderServiceImpl implements SapOrderService { L_ITEM.setValue("ERFME",stringObjectMap.get("ERFME")); } func.execute(dest);//执行调用函数 + System.out.println(func.getExportParameterList()); String RETCODE= func.getExportParameterList().getString("RETCODE"); String MESSAGE= func.getExportParameterList().getString("L_MSG"); String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT");