using HH.WMS.Common;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.InStock;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.Interface
|
{
|
public class InfOMSRequest : DapperBaseBLL
|
{
|
#region WMS到货单审核调用OMS入库确认接口发送确认指令
|
/// <summary>
|
/// WMS到货单审核调用OMS入库确认接口发送确认指令
|
/// </summary>
|
/// <param name="opArrivalNoList">到货单号</param>
|
/// <returns></returns>
|
public OperateResult ArrivalDoOmsConfirm(List<string> opArrivalNoList)
|
{
|
OperateResult oresult = new OperateResult() { Success = true };
|
try
|
{
|
QimenStockInConfirmEntity InConfirmEntity = new QimenStockInConfirmEntity();
|
// qstcF.entryOrder.
|
|
foreach (string ArrivalNo in opArrivalNoList)
|
{
|
DataTable dt = CreateDAL<TN_WM_ARRIVALDAL>().GetArrivalOmsConfirmData(ArrivalNo);
|
if (dt.Rows.Count == 0) continue;
|
|
List<orderLines> orderList = new List<orderLines>();
|
entryOrder entryOrderEntity = new entryOrder()
|
{
|
entryOrderCode = dt.Rows[0]["CN_S_OP_NO"].ToString(), //入库单号
|
purchaseOrderCode = dt.Rows[0]["CN_S_FROM_NO"].ToString(), //采购订单号(WMS系统:上游来源业务号)
|
ownerCode = dt.Rows[0]["CN_S_OWNER"].ToString(), //货主
|
warehouseCode = dt.Rows[0]["CN_S_STOCK_CODE"].ToString(), //仓库编码
|
outBizCode = dt.Rows[0]["CN_GUID"].ToString(), //外部业务编码,讲究唯一性
|
status = dt.Rows[0]["CN_S_STATE"].ToString() //状态
|
};
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
orderLines orderEntity = new orderLines()
|
{
|
ownerCode = dt.Rows[0]["CN_S_OWNER"].ToString(), //货主
|
itemCode = dt.Rows[i]["CN_S_ITEM_CODE"].ToString(), //物料编码
|
itemName = dt.Rows[i]["CN_S_ITEM_NAME"].ToString(), //物料名称
|
planQty = int.Parse(decimal.Parse(dt.Rows[i]["PLANQTY"].ToString()).ToString("0")), //订单总数量
|
actualQty = int.Parse(decimal.Parse(dt.Rows[i]["ACTUALQTY"].ToString()).ToString("0")) //实收数量(WMS系统:本次到货数)
|
};
|
orderList.Add(orderEntity);
|
}
|
InConfirmEntity.entryOrder = entryOrderEntity;
|
InConfirmEntity.orderLines = orderList;
|
|
string postData = JsonConvert.SerializeObject(InConfirmEntity);
|
string resultEntity = WebApiManager.HttpOms_Post("api/PurchaseService/UpdateAccArriveNum", postData);
|
if (!string.IsNullOrEmpty(resultEntity))
|
{
|
oresult.Success = false;
|
oresult.Msg = "UpdateAccArriveNum接口未调通!";
|
return oresult;
|
}
|
|
|
TN_WMS_REQ_LOGEntity ril = new TN_WMS_REQ_LOGEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_INTERFACE = "ArrivalDoOmsConfirm",
|
CN_S_INTERFACE_NAME = "WMS到货单审核调用OMS入库确认接口发送确认指令",
|
CN_S_REQUEST = postData,
|
CN_S_RESPONSE = resultEntity,
|
CN_T_CREATE = DateTime.Now
|
};
|
|
CreateDAL<DapperDAL<TN_WMS_REQ_LOGEntity>>().Add(ril);
|
QiMenInConfirmResponse qir = JsonConvert.DeserializeObject<QiMenInConfirmResponse>(resultEntity);
|
|
if (qir.flag == "failure")
|
{
|
oresult.Success = false;
|
oresult.Msg = qir.message;
|
return oresult;
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
oresult.Success = false;
|
oresult.Msg = ex.Message.ToString();
|
Log.Info("WMS入库确认调用OMS接口发送确认指令报错!!!", oresult.Msg);
|
return oresult;
|
}
|
return oresult;
|
}
|
#endregion
|
|
#region WMS到货单反审核调用OMS接口发送反审指令
|
/// <summary>
|
/// WMS到货单反审核调用OMS接口发送反审指令
|
/// </summary>
|
/// <param name="opArrivalNoList">到货单号</param>
|
/// <returns></returns>
|
public OperateResult ReArrivalDoOmsConfirm(List<string> opArrivalNoList)
|
{
|
OperateResult oresult = new OperateResult();
|
try
|
{
|
WmsReAuditToOmsEntity ReAuditToOmsEntity = new WmsReAuditToOmsEntity();
|
// qstcF.entryOrder.
|
|
foreach (string ArrivalNo in opArrivalNoList)
|
{
|
DataTable dt = CreateDAL<TN_WM_ARRIVALDAL>().GetArrivalOmsConfirmData(ArrivalNo);
|
if (dt.Rows.Count == 0) continue;
|
List<InOrderList> inorderList = new List<InOrderList>();
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
InOrderList inorderEntity = new InOrderList()
|
{
|
purchaseOrderCode = dt.Rows[i]["CN_S_FROM_NO"].ToString(), //采购单
|
itemCode = dt.Rows[i]["CN_S_ITEM_CODE"].ToString(), //物料编码
|
rowNum = int.Parse(string.IsNullOrEmpty(dt.Rows[i]["CN_N_FROM_ROW_NO"].ToString()) ? "0" : dt.Rows[i]["CN_N_FROM_ROW_NO"].ToString()),//采购单行号
|
Nums = decimal.Parse(string.IsNullOrEmpty(dt.Rows[i]["ACTUALQTY"].ToString()) ? "0" : dt.Rows[i]["ACTUALQTY"].ToString()) //到货数量
|
};
|
inorderList.Add(inorderEntity);
|
}
|
ReAuditToOmsEntity.InOrderList = inorderList;
|
|
string postData = JsonConvert.SerializeObject(ReAuditToOmsEntity.InOrderList);
|
string resultEntity = WebApiManager.HttpOms_Post("api/PurchaseService/UpdateAccArriveNumDesc", postData);
|
if (!string.IsNullOrEmpty(resultEntity))
|
{
|
oresult.Success = false;
|
oresult.Msg = "UpdateAccArriveNumDesc接口未调通!";
|
return oresult;
|
}
|
|
QiMenInConfirmResponse qir = JsonConvert.DeserializeObject<QiMenInConfirmResponse>(resultEntity);
|
|
TN_WMS_REQ_LOGEntity ril = new TN_WMS_REQ_LOGEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_INTERFACE = "ArrivalDoOmsConfirm",
|
CN_S_INTERFACE_NAME = "WMS入库确认调用OMS接口发送反审核指令",
|
CN_S_REQUEST = postData,
|
CN_S_RESPONSE = resultEntity,
|
CN_T_CREATE = DateTime.Now
|
};
|
CreateDAL<DapperDAL<TN_WMS_REQ_LOGEntity>>().Add(ril);
|
|
if (qir.flag == "failure")
|
{
|
oresult.Success = false;
|
oresult.Msg = qir.message;
|
return oresult;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
oresult.Success = false;
|
oresult.Msg = ex.Message.ToString();
|
Log.Info("WMS入库确认调用OMS接口发送反审核指令报错!!!", oresult.Msg);
|
return oresult;
|
}
|
return oresult;
|
}
|
#endregion
|
|
#region WMS检验单提交调用OMS接口更新采购订单待检验数量
|
/// <summary>
|
/// WMS检验单提交调用OMS接口更新采购订单待检验数量
|
/// </summary>
|
/// <param name="InspectNoList">检验单号</param>
|
/// <returns></returns>
|
public OperateResult InspectUpdateCheckResult(List<string> InspectNoList)
|
{
|
OperateResult oresult = new OperateResult();
|
|
List<OmsCheckResultEntity> CheckResultlist = new List<OmsCheckResultEntity>();
|
try
|
{
|
foreach (string opinspectNo in InspectNoList)
|
{
|
OmsCheckResultEntity CheckResult = new OmsCheckResultEntity();
|
DataTable dt = CreateDAL<TN_WM_INSPECTDAL>().GetOmsCheckResultData(opinspectNo);
|
if (dt.Rows.Count == 0) continue;
|
if (dt.Rows[0]["CN_S_OP_TYPE"].ToString() == "退库入库") continue;//业务类型:退库入库,检验单提交时无需调用OMS
|
|
List<Inspects> inspectList = new List<Inspects>();
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
Inspects inspect = new Inspects();
|
inspect.CN_S_OP_NO = dt.Rows[i]["CN_S_FROM_NO"].ToString();
|
inspect.CN_N_ROW = dt.Rows[i]["CN_N_ROW_NO"].ToString();
|
inspect.CN_S_ITEM_CODE = dt.Rows[i]["CN_S_ITEM_CODE"].ToString();
|
inspect.CN_S_CHECK_QTY = int.Parse(decimal.Parse(dt.Rows[i]["CN_F_QUANTITY"].ToString()).ToString("0"));
|
inspect.CN_S_REGULAR_QTY = int.Parse(decimal.Parse(dt.Rows[i]["CN_F_QUALIFIED"].ToString()).ToString("0"));
|
inspect.CN_S_NREG_QTY = int.Parse(decimal.Parse(dt.Rows[i]["CN_F_UNQUALIFIED"].ToString()).ToString("0"));
|
|
inspectList.Add(inspect);
|
}
|
CheckResult.CN_S_INSPECT_NO = opinspectNo;
|
CheckResult.InspectList = inspectList;
|
|
CheckResultlist.Add(CheckResult);
|
}
|
if (CheckResultlist.Count > 0)
|
{
|
string postOmsData = JsonConvert.SerializeObject(CheckResultlist);
|
string resultEntity = WebApiManager.HttpOms_Post("api/PurchaseService/UpdateCheckResult", postOmsData);
|
if (!string.IsNullOrEmpty(resultEntity))
|
{
|
oresult.Success = false;
|
oresult.Msg = "UpdateCheckResult接口未调通!";
|
return oresult;
|
}
|
|
OmsCheckResultResponse qir = JsonConvert.DeserializeObject<OmsCheckResultResponse>(resultEntity);
|
TN_WMS_REQ_LOGEntity ril = new TN_WMS_REQ_LOGEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_INTERFACE = "InspectUpdateCheckResult",
|
CN_S_INTERFACE_NAME = "WMS调用OMS更新待检验数量接口发送指令",
|
CN_S_REQUEST = postOmsData,
|
CN_S_RESPONSE = resultEntity,
|
CN_T_CREATE = DateTime.Now
|
};
|
CreateDAL<DapperDAL<TN_WMS_REQ_LOGEntity>>().Add(ril);
|
|
if (qir.Success)
|
{
|
oresult.Success = false;
|
oresult.Msg = qir.ErrorMes;
|
return oresult;
|
}
|
}
|
else
|
{
|
Log.Info("WMS检验单提交调用OMS接口更新采购订单待检验数量报错!!!", "没组织到数据");
|
oresult.Success = true;
|
oresult.Msg = "没组织到数据";
|
return oresult;
|
}
|
}
|
catch (Exception ex)
|
{
|
oresult.Success = false;
|
oresult.Msg = ex.Message.ToString();
|
Log.Info("WMS检验单提交调用OMS接口更新采购订单待检验数量报错!!!", oresult.Msg);
|
return oresult;
|
}
|
return oresult;
|
}
|
#endregion
|
|
#region WMS调用OMS删除入库单发送删除指令
|
public OperateResult InspectUpdateCheckResultDesc(string opNo)
|
{
|
OperateResult oresult = new OperateResult();
|
|
//拼接调用OMS参数,删除入库单需要发送OMS指令
|
List<OmsCheckResultEntity> CheckResultlist = new List<OmsCheckResultEntity>();
|
try
|
{
|
OmsCheckResultEntity CheckResult = new OmsCheckResultEntity();
|
DataTable dtDeleteIn = CreateDAL<TN_WM_INCREASE_INVENTORYDAL>().GetDeleteInOmsModel(opNo);
|
if (dtDeleteIn.Rows.Count == 0)
|
{
|
oresult.Success = false;
|
oresult.Msg = "未获取到入库单实体!";
|
return oresult;
|
}
|
|
List<Inspects> inspectList = new List<Inspects>();
|
for (int i = 0; i < dtDeleteIn.Rows.Count; i++)
|
{
|
Inspects inspect = new Inspects();
|
inspect.CN_S_OP_NO = dtDeleteIn.Rows[0]["CN_S_FROM_NO"].ToString();
|
inspect.CN_S_ITEM_CODE = dtDeleteIn.Rows[i]["CN_S_ITEM_CODE"].ToString();
|
inspect.CN_S_CHECK_QTY = int.Parse(decimal.Parse(dtDeleteIn.Rows[i]["CN_F_QUANTITY"].ToString()).ToString("0"));
|
inspect.CN_S_REGULAR_QTY = int.Parse(decimal.Parse(dtDeleteIn.Rows[i]["CN_F_QUALIFIED"].ToString()).ToString("0"));
|
inspect.CN_S_NREG_QTY = int.Parse(decimal.Parse(dtDeleteIn.Rows[i]["CN_F_UNQUALIFIED"].ToString()).ToString("0"));
|
|
inspectList.Add(inspect);
|
}
|
CheckResult.CN_S_INSPECT_NO = dtDeleteIn.Rows[0]["CN_S_INSPECT_NO"].ToString();
|
CheckResult.InspectList = inspectList;
|
|
CheckResultlist.Add(CheckResult);
|
|
string postOmsData = JsonConvert.SerializeObject(CheckResultlist);
|
string resultEntity = WebApiManager.HttpOms_Post("api/PurchaseService/UpdateCheckResultDesc", postOmsData);
|
if (!string.IsNullOrEmpty(resultEntity))
|
{
|
oresult.Success = false;
|
oresult.Msg = "UpdateCheckResultDesc接口未调通!";
|
return oresult;
|
}
|
|
OmsCheckResultResponse qir = JsonConvert.DeserializeObject<OmsCheckResultResponse>(resultEntity);
|
TN_WMS_REQ_LOGEntity ril = new TN_WMS_REQ_LOGEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_INTERFACE = "Increase-Delete",
|
CN_S_INTERFACE_NAME = "WMS调用OMS删除入库单发送删除指令",
|
CN_S_REQUEST = postOmsData,
|
CN_S_RESPONSE = resultEntity,
|
CN_T_CREATE = DateTime.Now
|
};
|
CreateDAL<DapperDAL<TN_WMS_REQ_LOGEntity>>().Add(ril);
|
|
if (!qir.Success)
|
{
|
oresult.Success = false;
|
oresult.Msg = "调用删除入库单失败!";
|
return oresult;
|
}
|
}
|
catch (Exception ex)
|
{
|
oresult.Success = false;
|
oresult.Msg = ex.Message.ToString();
|
Log.Info("WMS调用OMS删除入库单发送删除指令报错!!!", oresult.Msg);
|
return oresult;
|
}
|
return oresult;
|
}
|
#endregion
|
}
|
}
|