wxw
23 小时以前 22428c74e4b57c87a979a8f2f199e0e8e34dbb86
编写接收SAP下发入库单接口
4个文件已修改
171 ■■■■ 已修改文件
Wms/Model/InterFaceModel/HttpModel.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/UpApiController.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/InterFaceModel/HttpModel.cs
@@ -586,5 +586,77 @@
        /// </summary>
        public string contactMobile { get; set; }
    }
    public class SapAsnVm
    {
        /// <summary>
        /// 操作人
        /// </summary>
        public string @operator{ get; set; }
        public SendAsnVm data { get; set; }
    }
    public class SendAsnVm
    {
        /// <summary>
        /// 入库单号
        /// </summary>
        public long orderNo { get; set; }
        /// <summary>
        /// 入库单类型
        /// 0:成品入库 1:采购入库 3:退货入库 (销售退货)4:余料退回入库  8 :生产退料入库
        /// </summary>
        public int billType { get; set; }
        /// <summary>
        /// 供应商编号
        /// </summary>
        public string vendorNo { get; set; }
        /// <summary>
        /// 供应商名称
        /// </summary>
        public string vendorName { get; set; }
        /// <summary>
        /// 入库单明细列表
        /// </summary>
        public List<SendAsnDetail> orderDCmdList { get; set; }
    }
    public class SendAsnDetail
    {
        /// <summary>
        /// 入库单行号
        /// </summary>
        public string lineNo { get; set; }
        /// <summary>
        /// 物料编码
        /// </summary>
        public long skuNo { get; set; }
        /// <summary>
        /// 物料名称
        /// </summary>
        public string skuName { get; set; }
        /// <summary>
        /// 应收物料数量
        /// </summary>
        public string expectedQty { get; set; }
        /// <summary>
        /// 批号
        /// </summary>
        public long lotNo { get; set; }
        /// <summary>
        /// 生产日期
        /// </summary>
        public string productionDate { get; set; }
        /// <summary>
        /// 到期日期
        /// </summary>
        public string expireDate { get; set; }
        /// <summary>
        /// 复检日期
        /// </summary>
        public string retestDate { get; set; }
        /// <summary>
        /// 供应商批号
        /// </summary>
        public string supplyBatch { get; set; }
    }
    #endregion
}
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -1256,77 +1256,64 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ErpModel CreateAsn(AsnInfo model)
        public ErpModel CreateAsn(SendAsnVm model,string userName)
        {
            try
            {
                var resultModel = new ErpModel() { Success = -1, Message = "" };
                if (string.IsNullOrEmpty(model.AsnType))
                if (string.IsNullOrEmpty(model.billType.ToString()))
                {
                    resultModel.Message = "单据类型不可为空!";
                    return resultModel;
                }
                if (string.IsNullOrEmpty(model.Customer))
                {
                    resultModel.Message = "客户不可为空!";
                    return resultModel;
                }
                if (string.IsNullOrEmpty(model.OrderCode))
                if (string.IsNullOrEmpty(model.orderNo.ToString()))
                {
                    resultModel.Message = "上游系统单号不可为空!";
                    return resultModel;
                }
                if (model.AsnDetails.Count <= 0)
                if (model.orderDCmdList.Count <= 0)
                {
                    resultModel.Message = "入库单明细不可为空!";
                    return resultModel;
                }
                // 根据客户编号获取客户名称
                var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0");
                if (CustomerModel == null)
                {
                    resultModel.Message = "客户编号不存在!";
                    return resultModel;
                }
                // 入库总表信息
                string asnNo = new Common().GetMaxNo("ASN");
                var asnModel = new BllArrivalNotice()
                {
                    ASNNo = asnNo,
                    Status = "0",//等待执行
                    Type = model.AsnType,
                    Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
                    CustomerNo = model.Customer,
                    CustomerName = CustomerModel.CustomerName,
                    OrderCode = model.OrderCode,
                    UserName = model.Username
                    Type = model.billType.ToString(),
                    Origin = "SAP",
                    CustomerNo = model.vendorNo,
                    CustomerName = model.vendorName,
                    OrderCode = model.orderNo.ToString(),
                    UserName = userName
                };
                // 入库明细表信息
                List<BllArrivalNoticeDetail> detailModels = new List<BllArrivalNoticeDetail>();
                foreach (AsnDetail asnDetailModel in model.AsnDetails)
                foreach (var asnDetailModel in model.orderDCmdList)
                {
                    if (string.IsNullOrEmpty(asnDetailModel.SkuNo))
                    if (string.IsNullOrEmpty(asnDetailModel.skuNo.ToString()))
                    {
                        resultModel.Message = "物料编码不可为空!";
                        return resultModel;
                    }
                    if (asnDetailModel.Qty <= 0)
                    if (Convert.ToDecimal(asnDetailModel.expectedQty) <= 0)
                    {
                        resultModel.Message = "数量应为正整数!";
                        resultModel.Message = "应收物料数量应大于0!";
                        return resultModel;
                    }
                    if (string.IsNullOrEmpty(asnDetailModel.LotNo))
                    if (string.IsNullOrEmpty(asnDetailModel.lotNo.ToString()))
                    {
                        resultModel.Message = "批次号不可为空!";
                        return resultModel;
                    }
                    // 获取物料详细信息
                    var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.SkuNo && it.IsDel == "0");
                    var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.skuNo.ToString() && it.IsDel == "0");
                    if (skuModel == null)
                    {
                        resultModel.Message = "不存在当前物料信息!";
@@ -1338,16 +1325,18 @@
                    var detailModel = new BllArrivalNoticeDetail()
                    {
                        ASNNo = asnNo,
                        SkuNo = asnDetailModel.SkuNo,
                        SkuNo = asnDetailModel.skuNo.ToString(),
                        SkuName = skuModel.SkuName,
                        Standard = skuModel.Standard,
                        LotNo = asnDetailModel.LotNo,
                        LotNo = asnDetailModel.lotNo.ToString(),
                        LotText = "",
                        Qty = (decimal)asnDetailModel.Qty,
                        FactQty=0,
                        CompleteQty=0,
                        Qty = Convert.ToDecimal(asnDetailModel.expectedQty),
                        FactQty = 0,
                        CompleteQty = 0,
                        PackagNo = skuModel.PackagNo,
                        SupplierLot = asnDetailModel.SupplierLot,
                        SupplierLot = asnDetailModel.supplyBatch,//生产日期
                        Lot1 = asnDetailModel.productionDate,//过期日期
                        Lot2 = asnDetailModel.expireDate,
                        Status = "0",
                        IsSampling = "0",
                        InspectStatus = "0",
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
@@ -96,7 +96,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ErpModel CreateAsn(AsnInfo model);
        ErpModel CreateAsn(SendAsnVm model, string userName);
        /// <summary>
        /// 订单回传上游系统
        /// </summary>
Wms/Wms/Controllers/UpApiController.cs
@@ -29,6 +29,7 @@
using ZXing.QrCode.Internal;
using System.Xml.Linq;
using WMS.IBLL.ISysServer;
using ZXing;
namespace Wms.Controllers
{
@@ -122,11 +123,16 @@
                if (!str.Contains("0"))
                {
                    list = new { Success = -1, Message = str };
                    LogFile.SaveLogToFile($"客户供应商主数据同步:( {JsonConvert.SerializeObject(list)} ),", logStr);
                    return Ok(new { result = false, code = "400", message = str });
                }
                else
                {
                    LogFile.SaveLogToFile($"客户供应商主数据同步:( {JsonConvert.SerializeObject(list)} ),", logStr);
                LogFile.SaveLogToFile($"客户供应商主数据同步:( {JsonConvert.SerializeObject(list)} ),", logStr);
                return Ok(new { result = true, code = "1", message = "success" });
                    return Ok(new { result = true, code = "1", message = "success" });
                }
            }
            catch (Exception e)
            {
@@ -142,13 +148,29 @@
        /// <returns></returns>
        [AllowAnonymous]
        [HttpPost]
        public IActionResult CreateAsn(object model)
        public IActionResult CreateAsn(SapAsnVm model)
        {
            var logStr = $@".\log\SAP\入库单下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
            {
                LogFile.SaveLogToFile($"Sap入库单下发:( {model} ),", logStr);
                return Ok(new { result = true, code = "1", message = "success" });
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"Sap入库单下发:( {jsonData} ),", logStr);
                var _result = _arrivalNoticeSvc.CreateAsn(model.data, model.@operator);
                var list = new { Success = 0, Message = "下发成功" };
                if (_result.Success == 0)
                {
                    LogFile.SaveLogToFile($"客户供应商主数据同步:( {JsonConvert.SerializeObject(list)} ),", logStr);
                    return Ok(new { result = true, code = "1", message = "success" });
                }
                else
                {
                    list = new { Success = -1, Message = _result.Message };
                    LogFile.SaveLogToFile($"客户供应商主数据同步:( {JsonConvert.SerializeObject(list)} ),", logStr);
                    return Ok(new { result = false, code = "400", message = _result.Message });
                }
            }
            catch (Exception e)
            {