using iWareSAP.Cache.Entity;
|
using iWareSAP.IDOC.Entity;
|
using iWareSAP.PARAM.Entity;
|
using iWareSAP.Properties;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Runtime.Serialization;
|
using System.ServiceModel;
|
using System.Text;
|
using UtilDll.UTIL;
|
|
namespace iWareSAP.WCF
|
{
|
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“SapWcfService”。
|
public class SapWcfService : ISapWcfService
|
{
|
/// <summary>
|
/// 根据采购单号获取采购单
|
/// </summary>
|
/// <param name="poNumber"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public PurchaseOrderEntity GetPurchaseOrder(string poNumber, out string msg)
|
{
|
try
|
{
|
msg = "";
|
LogTextHelper.WriteLine(Resources.LogDir, "调用接口{0},poNumber={1}", "GetPurchaseOrder", poNumber);
|
var po = CacheEntity.SapncoClient.InvokeRFCFunctionGetPoDetail(poNumber, out msg);
|
if (!string.IsNullOrEmpty(msg))
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "msg={0}", msg);
|
return null;
|
}
|
var purchaseOrder = new PurchaseOrderEntity(po);
|
if (purchaseOrder != null)
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "purchaseOrder={0}", purchaseOrder);
|
}
|
return purchaseOrder;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "GetPurchaseOrder", msg);
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 获取采购单的展示字符传
|
/// </summary>
|
/// <param name="poNumber"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public string GetPurchaseOrderTxt(PurchaseOrderEntity po)
|
{
|
return po == null ? "" : po.ToString();
|
}
|
|
|
|
/// <summary>
|
/// 对收到的物料进行收货确认
|
/// </summary>
|
/// <param name="grMaterials"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public string ConfirmGR(List<GRMaterialEntity> grMaterials, out string msg)
|
{
|
try
|
{
|
msg = "";
|
var grStr = "";
|
grMaterials.ForEach(x => grStr += x.ToString() + "\r\n");
|
LogTextHelper.WriteLine(Resources.LogDir, "调用接口{0},grMaterials={1}", "ConfirmGR", grStr);
|
var grs = new List<GRMaterial>();
|
grMaterials.ForEach(x => grs.Add(new GRMaterial(x)));
|
var materialDoc = CacheEntity.SapncoClient.InvokeRFCFunctionPoGR(grs, out msg);
|
if (!string.IsNullOrEmpty(msg))
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "msg={0}", msg);
|
}
|
else
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "materialDoc={0}", materialDoc);
|
}
|
return materialDoc;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ConfirmGR", msg);
|
return "";
|
}
|
}
|
|
|
/// <summary>
|
/// 对物料进行出库确认
|
/// </summary>
|
/// <param name="grMaterials"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public string ConfirmGI(List<GIMaterialEntity> giMaterials, out string msg)
|
{
|
try
|
{
|
msg = "";
|
|
var giStr = "";
|
giMaterials.ForEach(x => giStr += x.ToString() + "\r\n");
|
LogTextHelper.WriteLine(Resources.LogDir, "调用接口{0},giMaterials={1}", "ConfirmGI", giStr);
|
var gies = new List<GIMaterial>();
|
giMaterials.ForEach(x => gies.Add(new GIMaterial(x)));
|
var materialDoc = CacheEntity.SapncoClient.InvokeRFCFunctionWmsGI(gies, out msg);
|
if (!string.IsNullOrEmpty(msg))
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "msg={0}", msg);
|
}
|
else
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "materialDoc={0}", materialDoc);
|
}
|
return materialDoc;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ConfirmGI", msg);
|
return "";
|
}
|
}
|
|
|
|
/// <summary>
|
/// 对物料进行移库确认
|
/// </summary>
|
/// <param name="grMaterials"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public string ConfirmMOV(List<MovMaterialEntity> movMaterials, out string msg)
|
{
|
try
|
{
|
msg = "";
|
var movStr = "";
|
movMaterials.ForEach(x => movStr += x.ToString() + "\r\n");
|
LogTextHelper.WriteLine(Resources.LogDir, "调用接口{0},movMaterials={1}", "ConfirmMOV", movStr);
|
var movs = new List<MovMaterial>();
|
movMaterials.ForEach(x => movs.Add(new MovMaterial(x)));
|
var materialDoc = CacheEntity.SapncoClient.InvokeRFCFunctionWmsStkMov(movs, out msg);
|
if (!string.IsNullOrEmpty(msg))
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "msg={0}", msg);
|
}
|
else
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "materialDoc={0}", materialDoc);
|
}
|
|
return materialDoc;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ConfirmMOV", msg);
|
return "";
|
}
|
}
|
|
|
/// <summary>
|
/// 根据物料凭证退物料
|
/// </summary>
|
/// <param name="poNumber"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public string WmsReverser(string doc, out string msg)
|
{
|
try
|
{
|
msg = "";
|
LogTextHelper.WriteLine(Resources.LogDir, "调用接口{0},doc={1}", "WmsReverser", doc);
|
var res = CacheEntity.SapncoClient.InvokeRFCFunctionWmsReverser(doc, out msg);
|
|
LogTextHelper.WriteLine(Resources.LogDir, "res={0},msg={1}", res, msg);
|
|
|
|
return res;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "WmsReverser", msg);
|
return null;
|
}
|
}
|
}
|
}
|