圣珀
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1079 lines
55 KiB

using ICS.WCF.Base;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using UFIDA.ISV.BFTransferInApprove;
using UFIDA.ISV.BFTransferINDelete;
using UFIDA.ISV.TransferInBatchApproveSRV;
using UFIDA.ISV.TransferInBatchCommitSRV;
using UFSoft.UBF.Service;
using UFSoft.UBF.Util.Context;
using www.ufida.org.EntityData;
namespace UFIDA.ISV.CreateTransferINForJOB
{
public class CustCreateTransferINForJOB
{
public OperationResult CreateTransferINForJOB(List<TransferINHead> TransferInList)
{
#region 入口日志
StringBuilder beginstrlog = new StringBuilder();
beginstrlog.AppendLine("日志记录开始");
beginstrlog.AppendLine("*****************************************************");
foreach (TransferINHead TransferInInfo in TransferInList)
{
beginstrlog.AppendLine("调入单单据类型:" + TransferInInfo.DocType);
beginstrlog.AppendLine("组织编码:" + TransferInInfo.OrgCode);
beginstrlog.AppendLine("领料单号:" + TransferInInfo.LLCode);
foreach (var line in TransferInInfo.lines)
{
beginstrlog.AppendLine("供应商编码:" + line.SupplierCode);
beginstrlog.AppendLine("调入物料编码:" + line.ItemCode);
beginstrlog.AppendLine("调入数量:" + line.TransferQTY);
beginstrlog.AppendLine("调入仓库" + line.INWhCode);
beginstrlog.AppendLine("调出仓库" + line.OutWhCode);
}
}
beginstrlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(beginstrlog.ToString(), "WMSJOB自动创建调拨单");
#endregion
#region 服务调用框架结构
UFIDAU9ISVTransferInISVICommonCreateTransferInSVClient client = new UFIDAU9ISVTransferInISVICommonCreateTransferInSVClient();
//服务返回结果
UFIDAU9CBOPubControllerCommonArchiveDataDTOData[] returnItems;
//返回异常信息,目前还没有使用此属性
OperationResult res = new OperationResult();
UFSoft.UBF.Exceptions.MessageBase[] outMessages;
long[] TransferInID;
string[] splitMergeRule = null;
//上下文信息
object context;
//传入 参数
UFIDAU9ISVTransferInISVIC_TransferInDTOData[] TransferInfoArray;
//空
string[] splitBy = new string[] { };
string UserID = "";
string WHCode = "";
long WHID = 0;
StringBuilder strlog = new StringBuilder();
try
{
List<rtnTransferInfo> rtnpos = new List<rtnTransferInfo>();
if (TransferInList == null)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入数据不能为空");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入数据不能为空";
return res;
}
string OrgID = "";
string orgsql = @"select ID from Base_Organization
where Code='{0}'";
orgsql = string.Format(orgsql, TransferInList[0].OrgCode);
DataTable orgdt = DBhlper.Query(orgsql, Appconfig.GetU9ConnStr());
if (orgdt.Rows.Count != 0)
{
OrgID = orgdt.Rows[0]["ID"].ToString();
}
else
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的组织:'" + TransferInList[0].OrgCode + "'不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的组织:'" + TransferInList[0].OrgCode + "'不存在";
return res;
}
#region 获取传入单据类型对应的ID
string DocTypeID = "";
string doctypesql = @"select ID from InvDoc_TransInDocType
where Code='{0}' AND Org='{1}'";
doctypesql = string.Format(doctypesql, TransferInList[0].DocType, OrgID);
DataTable DocTypedt = DBhlper.Query(doctypesql, Appconfig.GetU9ConnStr());
if (DocTypedt.Rows.Count == 0)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的单据类型:'" + TransferInList[0].DocType + "'在U9中不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的单据类型:'" + TransferInList[0].DocType + "'在U9中不存在";
return res;
}
else
{
DocTypeID = DocTypedt.Rows[0]["ID"].ToString();
}
#endregion
List<UFIDAU9ISVTransferInISVIC_TransferInDTOData> TransferInfoList = new List<UFIDAU9ISVTransferInISVIC_TransferInDTOData>();
UFIDAU9ISVTransferInISVIC_TransferInDTOData TransferInfo = new UFIDAU9ISVTransferInISVIC_TransferInDTOData();
List<UFIDAU9ISVTransferInISVIC_TransInLineDTOData> TransferLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInLineDTOData>();
UFIDAU9ISVTransferInISVIC_TransInLineDTOData TransferLineInfo = new UFIDAU9ISVTransferInISVIC_TransInLineDTOData();
List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData> TransferOutLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData>();
UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData TransferOutLineInfo = new UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData();
foreach (TransferINHead TransferIN in TransferInList)
{
TransferInfo.m_docNo = TransferIN.DocNo;
TransferInfo.m_transferType = 0;
TransferInfo.m_transInDocType = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
TransferInfo.m_transInDocType.m_iD = long.Parse(DocTypeID);
TransferInfo.m_transInDocType.m_code = TransferIN.DocType;
TransferInfo.m_transferDirection = 0;
TransferInfo.m_descFlexField = new UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData();
TransferInfo.m_descFlexField.m_privateDescSeg1 = TransferIN.LLCode;
foreach (TransferINBody line in TransferIN.lines)
{
#region 根据传入物料编码获取物料ID
string ITEMID = "";
string itemsql = @"select ID from CBO_ItemMaster
where Code='{0}' AND Org='{1}'";
itemsql = string.Format(itemsql, line.ItemCode, OrgID);
DataTable itemdt = DBhlper.Query(itemsql, Appconfig.GetU9ConnStr());
if (itemdt.Rows.Count == 0)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的物料编码:'" + line.ItemCode + "'在U9中不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的物料编码:'" + line.ItemCode + "'在U9中不存在";
return res;
}
else
{
ITEMID = itemdt.Rows[0]["ID"].ToString();
}
#endregion
#region 根据传入仓库获取仓库ID
string INWHID = "";
string OUTWHID = "";
string whsql = @"select ID from CBO_WH
where Code='{0}' AND Org='{1}'";
whsql = string.Format(whsql, line.INWhCode, OrgID);
DataTable whdt = DBhlper.Query(whsql, Appconfig.GetU9ConnStr());
if (whdt.Rows.Count == 0)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的调入仓库编码:'" + line.INWhCode + "'在U9中不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的调入仓库编码:'" + line.INWhCode + "'在U9中不存在";
return res;
}
else
{
INWHID = whdt.Rows[0]["ID"].ToString();
}
whsql = @"select ID from CBO_WH
where Code='{0}' AND Org='{1}'";
whsql = string.Format(whsql, line.OutWhCode, OrgID);
whdt = DBhlper.Query(whsql, Appconfig.GetU9ConnStr());
if (whdt.Rows.Count == 0)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的调出仓库编码:'" + line.OutWhCode + "'在U9中不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的调出仓库编码:'" + line.OutWhCode + "'在U9中不存在";
return res;
}
else
{
OUTWHID = whdt.Rows[0]["ID"].ToString();
}
#endregion
#region 根据传入供应商编码获取供应商ID
if (line.SupplierCode != "")
{
long SupplierID = 0;
string supsql = @"select ID from CBO_Supplier
where Code='{0}' AND Org='{1}'";
supsql = string.Format(supsql, line.SupplierCode, OrgID);
DataTable supdt = DBhlper.Query(supsql, Appconfig.GetU9ConnStr());
if (supdt.Rows.Count == 0)
{
strlog.AppendLine("*****************************************************");
strlog.AppendLine("错误消息:传入的供应商编码:'" + line.SupplierCode + "'在U9中不存在");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = "传入的供应商编码:'" + line.SupplierCode + "'在U9中不存在";
return res;
}
}
#endregion
TransferLineInfo = new UFIDAU9ISVTransferInISVIC_TransInLineDTOData();
TransferLineInfo.m_costUOMQty = line.TransferQTY;
TransferLineInfo.m_storeUOMQty = line.TransferQTY;
TransferLineInfo.m_itemInfo = new UFIDAU9CBOSCMItemItemInfoData();
TransferLineInfo.m_itemInfo.m_itemCode = line.ItemCode;
TransferLineInfo.m_itemInfo.ItemID = long.Parse(ITEMID);
TransferLineInfo.m_storageType = 4;
TransferLineInfo.m_transInWh = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
TransferLineInfo.m_transInWh.m_iD = long.Parse(INWHID);
TransferLineInfo.m_transInWh.m_code = line.INWhCode;
TransferOutLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData>();
TransferOutLineInfo = new UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData();
TransferOutLineInfo.m_costUOMQty = line.TransferQTY;
TransferOutLineInfo.m_storeUOMQty = line.TransferQTY;
TransferOutLineInfo.m_storageType = 4;
if (line.SupplierCode != "")
{
TransferOutLineInfo.m_transOutSuppInfo = new UFIDAU9CBOSCMSupplierSupplierMISCInfoData();
TransferOutLineInfo.m_transOutSuppInfo.m_code = line.SupplierCode;
}
TransferOutLineInfo.m_transOutWh = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
TransferOutLineInfo.m_transOutWh.m_code = line.OutWhCode;
TransferOutLineInfo.m_transOutWh.m_iD = long.Parse(OUTWHID);
TransferOutLineInfoList.Add(TransferOutLineInfo);
TransferLineInfo.m_transInSubLines = TransferOutLineInfoList.ToArray();
TransferLineInfoList.Add(TransferLineInfo);
}
TransferInfo.m_transInLines = TransferLineInfoList.ToArray();
TransferInfoList.Add(TransferInfo);
}
//给传入参数赋值
//pOList = SetrCVDtos(rCVInfoList);
strlog.AppendLine("创建调入单");
strlog.AppendLine("*****************************************************");
long TransferInType = 0;
//给上下文信息赋值
context = CreateContextObj(OrgID);
(client.Endpoint.Binding as BasicHttpBinding).MaxReceivedMessageSize = int.MaxValue;
(client.Endpoint.Binding as BasicHttpBinding).MaxBufferSize = int.MaxValue;
//创建调入单
returnItems = client.Do(context, TransferInfoList.ToArray(), out outMessages);
foreach (var returnline in returnItems)
{
if (returnline.m_code == null)
{
strlog.AppendLine("错误消息:调入单创建失败");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = returnline.ExtensionData.ToString() ;
return res;
}
else
{
strlog.AppendLine("正确消息:调入单创建成功,单号:'" + returnline.m_code + "'");
strlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = true;
res.LLCode = returnline.m_code;
res.MESSAGE ="";
return res;
//TransferInBatchCommitSRV.OperationResult result = new TransferInBatchCommitSRV.OperationResult();
//CustTransferInBatchCommitSRV CommitTransferIN = new CustTransferInBatchCommitSRV();
//TransferInBatchCommitSRV.InPut commitinfo = new TransferInBatchCommitSRV.InPut();
//commitinfo.DocID = returnline.m_iD;
//commitinfo.DocNo = returnline.m_code;
//commitinfo.OrgCode = TransferInList[0].OrgCode;
//result = CommitTransferIN.CustCommitTransferIn(commitinfo);
//if (result.IsSuccess == true)
//{
// //TransferInBatchApproveSRV.OperationResult approveresult = new TransferInBatchApproveSRV.OperationResult();
// //CustTransferInBatchApproveSRV ApproveTransferIN = new CustTransferInBatchApproveSRV();
// //TransferInBatchApproveSRV.InPut approveinfo = new TransferInBatchApproveSRV.InPut();
// //approveinfo.DocNo = returnline.m_code;
// //approveinfo.approvedBy = "admin";
// //approveinfo.OrgCode = TransferInList[0].OrgCode;
// //approveresult = ApproveTransferIN.CustApproveTransferIn(approveinfo);
// //if (approveresult.IsSuccess == true)
// //{
// strlog.AppendLine("正确消息:调入单创建成功,单号:'" + returnline.m_code + "'");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
// return returnline.m_code;
// //}
// //else
// //{
// // CustDeleteBFTransfer delTransferIN = new CustDeleteBFTransfer();
// // delTransferIN.CustBFTransferDelete(returnline.m_iD, OrgID);
// // strlog.AppendLine("错误消息:调入单审核失败,单号:'" + returnline.m_code + "'");
// // strlog.AppendLine("*****************************************************");
// // Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
// // return "";
// //}
//}
//else
//{
// CustDeleteBFTransfer delTransferIN = new CustDeleteBFTransfer();
// delTransferIN.CustBFTransferDelete(returnline.m_iD, OrgID);
// strlog.AppendLine("错误消息:调入单提交失败,单号:'" + returnline.m_code + "'");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "WMSJOB自动创建调拨单");
// return "";
//}
}
}
}
catch (Exception ex)
{
StringBuilder strerrorlog = new StringBuilder();
strerrorlog.AppendLine("错误消息:" + GetExceptionMessage(ex));
strerrorlog.AppendLine("*****************************************************");
Appconfig.WriteLogFile(strerrorlog.ToString(), "WMSJOB自动创建调拨单");
res.IsSuccess = false;
res.MESSAGE = GetExceptionMessage(ex);
return res;
}
#endregion
return res;
}
#region
// public rtnInfo CreateTransferINForCRM(List<TransferINHead> TransferInList)
// {
// #region 入口日志
// StringBuilder beginstrlog = new StringBuilder();
// beginstrlog.AppendLine("日志记录开始");
// beginstrlog.AppendLine("*****************************************************");
// foreach (TransferINHead TransferInInfo in TransferInList)
// {
// beginstrlog.AppendLine("调入单单据类型:" + TransferInInfo.DocType);
// beginstrlog.AppendLine("组织编码:" + TransferInInfo.OrgCode);
// foreach (var line in TransferInInfo.lines)
// {
// beginstrlog.AppendLine("供应商编码:" + line.SupplierCode);
// beginstrlog.AppendLine("调入物料编码:" + line.ItemCode);
// beginstrlog.AppendLine("调入数量:" + line.TransferQTY);
// beginstrlog.AppendLine("调入仓库" + line.INWhCode);
// beginstrlog.AppendLine("调出仓库" + line.OutWhCode);
// }
// }
// beginstrlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(beginstrlog.ToString(), "CRM调用创建调拨单");
// #endregion
// #region 服务调用框架结构
// UFIDAU9ISVTransferInISVICommonCreateTransferInSVClient client = new UFIDAU9ISVTransferInISVICommonCreateTransferInSVClient();
// //服务返回结果
// UFIDAU9CBOPubControllerCommonArchiveDataDTOData[] returnItems;
// //返回异常信息,目前还没有使用此属性
// UFSoft.UBF.Exceptions.MessageBase[] outMessages;
// long[] TransferInID;
// //返回信息
// rtnInfo rtnpos = new rtnInfo();
// string[] splitMergeRule = null;
// //上下文信息
// object context;
// //传入 参数
// UFIDAU9ISVTransferInISVIC_TransferInDTOData[] TransferInfoArray;
// //空
// string[] splitBy = new string[] { };
// string UserID = "";
// string WHCode = "";
// long WHID = 0;
// StringBuilder strlog = new StringBuilder();
// try
// {
// if (TransferInList == null)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入数据不能为空");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入数据不能为空";
// return rtnpos;
// }
// string OrgID = "";
// string orgsql = @"select ID from Base_Organization
// where Code='{0}'";
// orgsql = string.Format(orgsql, TransferInList[0].OrgCode);
// DataTable orgdt = DBhlper.Query(orgsql, Appconfig.GetU9ConnStr());
// if (orgdt.Rows.Count != 0)
// {
// OrgID = orgdt.Rows[0]["ID"].ToString();
// }
// else
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的组织:'" + TransferInList[0].OrgCode + "'不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的组织:'" + TransferInList[0].OrgCode + "'不存在";
// return rtnpos;
// }
// #region 获取传入单据类型对应的ID
// string DocTypeID = "";
// string doctypesql = @"select ID from InvDoc_TransInDocType
// where Code='{0}' AND Org='{1}'";
// doctypesql = string.Format(doctypesql, TransferInList[0].DocType, OrgID);
// DataTable DocTypedt = DBhlper.Query(doctypesql, Appconfig.GetU9ConnStr());
// if (DocTypedt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的单据类型:'" + TransferInList[0].DocType + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的单据类型:'" + TransferInList[0].DocType + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// DocTypeID = DocTypedt.Rows[0]["ID"].ToString();
// }
// #endregion
// List<UFIDAU9ISVTransferInISVIC_TransferInDTOData> TransferInfoList = new List<UFIDAU9ISVTransferInISVIC_TransferInDTOData>();
// UFIDAU9ISVTransferInISVIC_TransferInDTOData TransferInfo = new UFIDAU9ISVTransferInISVIC_TransferInDTOData();
// List<UFIDAU9ISVTransferInISVIC_TransInLineDTOData> TransferLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInLineDTOData>();
// UFIDAU9ISVTransferInISVIC_TransInLineDTOData TransferLineInfo = new UFIDAU9ISVTransferInISVIC_TransInLineDTOData();
// List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData> TransferOutLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData>();
// UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData TransferOutLineInfo = new UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData();
// List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData> TransferBinList = new List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData>();
// UFIDAU9ISVTransferInISVIC_TransInBinDTOData TransferBin = new UFIDAU9ISVTransferInISVIC_TransInBinDTOData();
// List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData> TransferOutBinList = new List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData>();
// UFIDAU9ISVTransferInISVIC_TransInBinDTOData TransferOutBin = new UFIDAU9ISVTransferInISVIC_TransInBinDTOData();
// foreach (TransferINHead TransferIN in TransferInList)
// {
// TransferInfo.m_transferType = 0;
// TransferInfo.m_transInDocType = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
// TransferInfo.m_transInDocType.m_iD = long.Parse(DocTypeID);
// TransferInfo.m_transInDocType.m_code = TransferIN.DocType;
// TransferInfo.m_transferDirection = 0;
// TransferInfo.m_descFlexField = new UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData();
// TransferInfo.m_descFlexField.m_pubDescSeg17 = TransferIN.LLCode;
// foreach (TransferINBody line in TransferIN.lines)
// {
// #region 根据传入物料编码获取物料ID
// string ITEMID = "";
// string itemsql = @"select ID from CBO_ItemMaster
// where Code='{0}' AND Org='{1}'";
// itemsql = string.Format(itemsql, line.ItemCode, OrgID);
// DataTable itemdt = DBhlper.Query(itemsql, Appconfig.GetU9ConnStr());
// if (itemdt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的物料编码:'" + line.ItemCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的物料编码:'" + line.ItemCode + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// ITEMID = itemdt.Rows[0]["ID"].ToString();
// }
// #endregion
// #region 根据传入仓库获取仓库ID
// string INWHID = "";
// string OUTWHID = "";
// string whsql = @"select ID from CBO_WH
// where Code='{0}' AND Org='{1}'";
// whsql = string.Format(whsql, line.INWhCode, OrgID);
// DataTable whdt = DBhlper.Query(whsql, Appconfig.GetU9ConnStr());
// if (whdt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的调入仓库编码:'" + line.INWhCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的调入仓库编码:'" + line.INWhCode + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// INWHID = whdt.Rows[0]["ID"].ToString();
// }
// whsql = @"select ID from CBO_WH
// where Code='{0}' AND Org='{1}'";
// whsql = string.Format(whsql, line.OutWhCode, OrgID);
// whdt = DBhlper.Query(whsql, Appconfig.GetU9ConnStr());
// if (whdt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的调出仓库编码:'" + line.INWhCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的调出仓库编码:'" + line.INWhCode + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// OUTWHID = whdt.Rows[0]["ID"].ToString();
// }
// #endregion
// #region 根据传入库位及仓库ID获取库位ID
// string InBinID = "";
// string OutBinID = "";
// if (line.INBinCode != "")
// {
// string binsql = @"select ID from CBO_Bin
// where Warehouse='{0}' AND Code='{1}' AND Org='{2}'";
// binsql = string.Format(binsql, INWHID, line.INBinCode, OrgID);
// DataTable bindt = DBhlper.Query(binsql, Appconfig.GetU9ConnStr());
// if (bindt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的调入库位编码:'" + line.INBinCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的调入库位编码:'" + line.INBinCode + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// InBinID = bindt.Rows[0]["ID"].ToString();
// }
// }
// if (!string.IsNullOrWhiteSpace(line.OutBinCode))
// {
// string binsql = @"select ID from CBO_Bin
// where Warehouse='{0}' AND Code='{1}' AND Org='{2}'";
// binsql = string.Format(binsql, OUTWHID, line.OutBinCode, OrgID);
// DataTable bindt = DBhlper.Query(binsql, Appconfig.GetU9ConnStr());
// if (bindt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的调出库位编码:'" + line.OutBinCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的调出库位编码:'" + line.OutBinCode + "'在U9中不存在";
// return rtnpos;
// }
// else
// {
// OutBinID = bindt.Rows[0]["ID"].ToString();
// }
// }
// #endregion
// #region 根据传入供应商编码获取供应商ID
// if (line.SupplierCode != "")
// {
// long SupplierID = 0;
// string supsql = @"select ID from CBO_Supplier
// where Code='{0}' AND Org='{1}'";
// supsql = string.Format(supsql, line.SupplierCode, OrgID);
// DataTable supdt = DBhlper.Query(supsql, Appconfig.GetU9ConnStr());
// if (supdt.Rows.Count == 0)
// {
// strlog.AppendLine("*****************************************************");
// strlog.AppendLine("错误消息:传入的供应商编码:'" + line.SupplierCode + "'在U9中不存在");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "传入的供应商编码:'" + line.SupplierCode + "'在U9中不存在";
// return rtnpos;
// }
// }
// #endregion
// TransferLineInfo = new UFIDAU9ISVTransferInISVIC_TransInLineDTOData();
// TransferLineInfo.m_costUOMQty = line.TransferQTY;
// TransferLineInfo.m_storeUOMQty = line.TransferQTY;
// TransferLineInfo.m_itemInfo = new UFIDAU9CBOSCMItemItemInfoData();
// TransferLineInfo.m_itemInfo.m_itemCode = line.ItemCode;
// TransferLineInfo.m_itemInfo.ItemID = long.Parse(ITEMID);
// TransferLineInfo.m_storageType = 4;
// TransferLineInfo.m_transInWh = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
// TransferLineInfo.m_transInWh.m_iD = long.Parse(INWHID);
// TransferLineInfo.m_transInWh.m_code = line.INWhCode;
// if (InBinID != "")
// {
// TransferBinList = new List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData>();
// TransferBin = new UFIDAU9ISVTransferInISVIC_TransInBinDTOData();
// TransferBin.m_binLineNo = 10;
// TransferBin.m_storeUOMQty = line.TransferQTY;
// TransferBin.m_binInfo = new UFIDAU9CBOSCMBinBinInfoData();
// TransferBin.m_binInfo.m_code = line.INBinCode;
// TransferBin.m_binInfo.Bin = long.Parse(InBinID);
// TransferBin.m_binInfo.Bin_SKey = new UFSoft.UBF.Business.BusinessEntity.EntityKey();
// TransferBin.m_binInfo.Bin_SKey.ID = long.Parse(InBinID);
// TransferBinList.Add(TransferBin);
// TransferLineInfo.m_transInBins = TransferBinList.ToArray();
// }
// TransferOutLineInfoList = new List<UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData>();
// TransferOutLineInfo = new UFIDAU9ISVTransferInISVIC_TransInSubLineDTOData();
// TransferOutLineInfo.m_costUOMQty = line.TransferQTY;
// TransferOutLineInfo.m_storeUOMQty = line.TransferQTY;
// TransferOutLineInfo.m_storageType = 4;
// if (line.SupplierCode != "")
// {
// TransferOutLineInfo.m_transOutSuppInfo = new UFIDAU9CBOSCMSupplierSupplierMISCInfoData();
// TransferOutLineInfo.m_transOutSuppInfo.m_code = line.SupplierCode;
// }
// TransferOutLineInfo.m_transOutWh = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
// TransferOutLineInfo.m_transOutWh.m_code = line.OutWhCode;
// TransferOutLineInfo.m_transOutWh.m_iD = long.Parse(OUTWHID);
// if (OutBinID != "")
// {
// TransferOutBinList = new List<UFIDAU9ISVTransferInISVIC_TransInBinDTOData>();
// TransferOutBin = new UFIDAU9ISVTransferInISVIC_TransInBinDTOData();
// TransferOutBin.m_binLineNo = 10;
// TransferOutBin.m_storeUOMQty = line.TransferQTY;
// TransferOutBin.m_binInfo = new UFIDAU9CBOSCMBinBinInfoData();
// TransferOutBin.m_binInfo.m_code = line.OutBinCode;
// TransferOutBin.m_binInfo.Bin = long.Parse(OutBinID);
// TransferOutBin.m_binInfo.Bin_SKey = new UFSoft.UBF.Business.BusinessEntity.EntityKey();
// TransferOutBin.m_binInfo.Bin_SKey.ID = long.Parse(OutBinID);
// TransferOutBinList.Add(TransferOutBin);
// TransferOutLineInfo.m_transInBins = TransferOutBinList.ToArray();
// }
// TransferOutLineInfoList.Add(TransferOutLineInfo);
// TransferLineInfo.m_transInSubLines = TransferOutLineInfoList.ToArray();
// TransferLineInfoList.Add(TransferLineInfo);
// }
// TransferInfo.m_transInLines = TransferLineInfoList.ToArray();
// TransferInfoList.Add(TransferInfo);
// }
// //给传入参数赋值
// //pOList = SetrCVDtos(rCVInfoList);
// strlog.AppendLine("创建调入单");
// strlog.AppendLine("*****************************************************");
// long TransferInType = 0;
// //给上下文信息赋值
// context = CreateContextObj(OrgID);
// (client.Endpoint.Binding as BasicHttpBinding).MaxReceivedMessageSize = int.MaxValue;
// (client.Endpoint.Binding as BasicHttpBinding).MaxBufferSize = int.MaxValue;
// //创建调入单
// returnItems = client.Do(context, TransferInfoList.ToArray(), out outMessages);
// foreach (var returnline in returnItems)
// {
// if (returnline.m_code == null)
// {
// strlog.AppendLine("错误消息:调入单创建失败");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "调入单创建失败";
// return rtnpos;
// }
// else
// {
// TransferInBatchCommitSRV.OperationResult result = new TransferInBatchCommitSRV.OperationResult();
// CustTransferInBatchCommitSRV CommitTransferIN = new CustTransferInBatchCommitSRV();
// TransferInBatchCommitSRV.InPut commitinfo = new TransferInBatchCommitSRV.InPut();
// commitinfo.DocID = returnline.m_iD;
// commitinfo.DocNo = returnline.m_code;
// commitinfo.OrgCode = TransferInList[0].OrgCode;
// result = CommitTransferIN.CustCommitTransferIn(commitinfo);
// if (result.IsSuccess == true)
// {
// TransferInBatchApproveSRV.OperationResult approveresult = new TransferInBatchApproveSRV.OperationResult();
// CustTransferInBatchApproveSRV ApproveTransferIN = new CustTransferInBatchApproveSRV();
// TransferInBatchApproveSRV.InPut approveinfo = new TransferInBatchApproveSRV.InPut();
// approveinfo.DocNo = returnline.m_code;
// approveinfo.approvedBy = "admin";
// approveinfo.OrgCode = TransferInList[0].OrgCode;
// approveresult = ApproveTransferIN.CustApproveTransferIn(approveinfo);
// if (approveresult.IsSuccess == true)
// {
// strlog.AppendLine("正确消息:调入单创建成功,单号:'" + returnline.m_code + "'");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "调入单创建成功";
// rtnpos.DocNo = returnline.m_code;
// return rtnpos;
// }
// else
// {
// CustDeleteBFTransfer delTransferIN = new CustDeleteBFTransfer();
// delTransferIN.CustBFTransferDelete(returnline.m_iD, OrgID);
// strlog.AppendLine("错误消息:调入单审核失败,单号:'" + returnline.m_code + "'");
// strlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = "调入单审核失败";
// rtnpos.DocNo = returnline.m_code;
// return rtnpos;
// }
// }
// else
// {
// rtnpos.Message = "调入单提交失败,单号:'" + returnline.m_code + "'";
// return rtnpos;
// }
// }
// }
// }
// catch (Exception ex)
// {
// StringBuilder strerrorlog = new StringBuilder();
// strerrorlog.AppendLine("错误消息:" + GetExceptionMessage(ex));
// strerrorlog.AppendLine("*****************************************************");
// Appconfig.WriteLogFile(strerrorlog.ToString(), "CRM调用创建调拨单");
// rtnpos.Message = GetExceptionMessage(ex);
// return rtnpos;
// }
// #endregion
// return rtnpos;
// }
#endregion
#region 表头类
public class TransferINHead
{
private TransferINBody[] _lines;
private string _DocType;
private string _OrgCode;
private string _DocNo;
private string _LLCode;
public TransferINBody[] lines
{
get { return _lines; }
set { _lines = value; }
}
public string DocNo
{
get { return _DocNo; }
set { _DocNo = value; }
}
public string DocType
{
get { return _DocType; }
set { _DocType = value; }
}
public string OrgCode
{
get { return _OrgCode; }
set { _OrgCode = value; }
}
public string LLCode
{
get { return _LLCode; }
set { _LLCode = value; }
}
}
#endregion
public class OperationResult
{
/// <summary>
/// 结果状态,默认值false
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
///处理消息
/// </summary>
public string MESSAGE { get; set; }
/// <summary>
/// 输出领料订单
/// </summary>
public string LLCode { get; set; }
}
#region 表体类
public class TransferINBody
{
/// <summary>
/// 数量
/// </summary>
public decimal TransferQTY { get; set; }
/// <summary>
/// 调入仓库
/// </summary>
public string INWhCode { get; set; }
/// <summary>
/// 调入库位
/// </summary>
public string INBinCode { get; set; }
/// <summary>
/// 调出库位
/// </summary>
public string OutBinCode { get; set; }
/// <summary>
/// 调出仓库
/// </summary>
public string OutWhCode { get; set; }
/// <summary>
/// 调拨物料
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 供应商编码
/// </summary>
public string SupplierCode { get; set; }
}
#endregion
#region 提取异常信息
/// <summary>
/// 提取异常信息
/// </summary>
/// <param name="ex"></param>
private string GetExceptionMessage(Exception ex)
{
string faultMessage = "未知错误,请查看ERP日志!";
System.TimeoutException timeoutEx = ex as System.TimeoutException;
if (timeoutEx != null)
{
faultMessage = "访问服务超时,请修改配置信息!";
}
else
{
FaultException<ServiceException> faultEx = ex as FaultException<ServiceException>;
if (faultEx == null)
{
faultMessage = ex.Message;
}
else
{
ServiceException serviceEx = faultEx.Detail;
if (serviceEx != null && !string.IsNullOrEmpty(serviceEx.Message)
&& !serviceEx.Message.Equals("fault", StringComparison.OrdinalIgnoreCase))
{
// 错误信息在faultEx.Message中,请提取,
// 格式为"Fault:料品不能为空,请录入\n 在....."
int startIndex = serviceEx.Message.IndexOf(":");
int endIndex = serviceEx.Message.IndexOf("\n");
if (endIndex == -1)
endIndex = serviceEx.Message.Length;
if (endIndex > 0 && endIndex > startIndex + 1)
{
faultMessage = serviceEx.Message.Substring(startIndex + 1, endIndex - startIndex - 1);
}
else
{
faultMessage = serviceEx.Message;
}
}
}
}
return faultMessage;
}
#endregion
#region 给上下文信息赋值
/// <summary>
/// 给上下文信息赋值
/// </summary>
/// <returns></returns>
private ThreadContext CreateContextObj(string OrgID)
{
// 实例化应用上下文对象
ThreadContext thContext = new ThreadContext();
System.Collections.Generic.Dictionary<object, object> ns = new Dictionary<object, object>();
ns.Add("OrgID", OrgID);
ns.Add("UserID", ConfigurationManager.AppSettings["userID"].ToString());
ns.Add("UserCode", ConfigurationManager.AppSettings["userCode"].ToString());
ns.Add("Datetime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
ns.Add("CultureName", ConfigurationManager.AppSettings["cultureName"].ToString());
ns.Add("EnterpriseID", ConfigurationManager.AppSettings["enterpriseID"].ToString());
ns.Add("DefaultCultureName", ConfigurationManager.AppSettings["cultureName"].ToString());
ns.Add("Support_CultureNameList", "zh-CN");
thContext.nameValueHas = ns;
return thContext;
}
#endregion
#region 时间戳方法
private DateTime TimestampToDateTime(long timestamp)
{
DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = timestamp * 10000000;
TimeSpan nowTimeSpan = new TimeSpan(lTime);
DateTime resultDateTime = dateTimeStart.Add(nowTimeSpan);
return resultDateTime;
}
#endregion
}
#region 上下文类信息
public class contextInfo
{
private long _OrgID;
private string _OrgCode;
private long _UserID;
private string _UserCode;
private DateTime _Datetime;
private string _CultureName;
private string _EnterpriseID;
/// <summary>
/// 组织ID
/// </summary>
public long OrgID
{
get { return _OrgID; }
set { _OrgID = value; }
}
/// <summary>
/// 组织编码
/// </summary>
public string OrgCode
{
get { return _OrgCode; }
set { _OrgCode = value; }
}
/// <summary>
/// 操作员ID
/// </summary>
public long UserID
{
get { return _UserID; }
set { _UserID = value; }
}
/// <summary>
/// 操作员编码
/// </summary>
public string UserCode
{
get { return _UserCode; }
set { _UserCode = value; }
}
/// <summary>
/// 时间
/// </summary>
public DateTime Datetime
{
get { return _Datetime; }
set { _Datetime = value; }
}
/// <summary>
/// 语言
/// </summary>
public string CultureName
{
get { return _CultureName; }
set { _CultureName = value; }
}
/// <summary>
/// 企业ID号
/// </summary>
public string EnterpriseID
{
get { return _EnterpriseID; }
set { _EnterpriseID = value; }
}
public contextInfo()
{
CultureName = "zh-CN";
Datetime = DateTime.Now;
}
}
#endregion
#region 返回信息类
public class rtnTransferInfo
{
public string DocNo { get; set; }
public bool IsSuccess { get; set; }
public string Message { get; set; }
public rtnTransferLine[] rtnLines { get; set; }
}
public class rtnTransferLine
{
public int LineNo { get; set; }
}
public class rtnInfo
{
public string DocNo { get; set; }
public string Message { get; set; }
}
#endregion
#region 表体类
//public class rCVLine
//{
// /// <summary>
// /// 来源采购订单
// /// </summary>
// public string srcDocPONo { get; set; }
// private int _srcDocPOLineNo;
// private decimal _reqQty;
// public string WhCode { get; set; }
// /// <summary>
// /// 炉号
// /// </summary>
// public string FurnaceNo { get; set; }
// /// <summary>
// /// 数量
// /// </summary>
// public decimal ReqQty
// {
// get { return _reqQty; }
// set { _reqQty = value; }
// }
// /// <summary>
// /// 来源采购订单行
// /// </summary>
// public int srcDocPOLineNo
// {
// get { return _srcDocPOLineNo; }
// set { _srcDocPOLineNo = value; }
// }
//}
#endregion
}