SAP订单物料过账修改

master
Yangwl 1 year ago
parent 9d882c2dde
commit 2b3e9a69cb

@ -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<Map<String, Object>> 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<Map<String, Object>> getMapList() {
return mapList;
}
public void setMeins(String meins) {
this.meins = meins;
public void setMapList(List<Map<String, Object>> 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;
}
}

@ -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;
}

@ -111,16 +111,16 @@ public class OpenController extends BaseController {
return success(openService.insertQcCheckTaskProduce(qcCheckTaskProduce));
}
/**
* ZL0010- :"workflowId": 26235
/**===============ZL0010- :"workflowId": 26235=============
*
*
* CQ OEMCM LLLB 01MATNR MAKTX suppliernum
* supplier CHARG comeQty testDate JYBH
* BJY OEMWLLY 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 JYRESULT0 2
* PROCODEBAK BZ CPCYS PCJYBHGMS
*
* =========================ZL0030- :"workflowId": 26256
* CPMC CPBM SQBM SQR SQSJ SCCJ SCPH SCSL
* FXDD FXRQ BH YCFW PZYCMS Notes SFXYZGQC PGZG
* PGZR SFGYSWT
* @param paramMap
* @return
*/

@ -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<SapMaterialPosting> sapMaterialPostingList){
return sapItemSyncService.sapMaterialPosting(sapMaterialPostingList);
@Log(title = "订单物料过账", businessType = BusinessType.SAP)
public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){
return sapItemSyncService.sapMaterialPosting(sapMaterialPosting);
}

@ -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;
/**
* 20238
@ -20,11 +21,12 @@ public interface SapItemSyncService {
/**
* 退MB1A
* @param sapMaterialPostingList
* @param sapMaterialPosting
* @return
*/
R sapMaterialPosting(List<SapMaterialPosting> sapMaterialPostingList);
R sapMaterialPosting(SapMaterialPosting sapMaterialPosting);
R sapBackflushMP(List<SapBackflushMPQuery> sapBackflushMPQueryList);
}

@ -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<SapMaterialPosting> 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<String, Object> 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<SapBaseProduct> sapBaseProductList){
if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0)

@ -38,6 +38,7 @@ public class SapOrderServiceImpl implements SapOrderService {
@Autowired
private JCoDestination dest;
@Override
public R<List<SapProOrder>> 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");

Loading…
Cancel
Save