zhaowc
2025-01-16 2045b7d31aa63e97d820c72c21cf145adb58960c
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -22,6 +22,7 @@
using System.Security.Policy;
using WMS.Entity.DataEntity;
using WMS.Entity.BllQualityEntity;
using Microsoft.VisualBasic;
namespace WMS.BLL.BllAsnServer
{
@@ -344,6 +345,16 @@
                            continue;
                        }
                    }
                    if (!string.IsNullOrEmpty(detailModel.IsBale))
                    {
                        detailModel.IsBale = detailModel.IsBale == "是" ? "1" : "0";
                        if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
                        {
                            //判断是否裹包
                            strMessage = "-1:裹包字段只能录入“是”或“否”;";
                            continue;
                        }
                    }
                    if (model.Type != "7")
                    {
                        if (!TypeLot.Contains(model.Type))
@@ -399,6 +410,20 @@
                    if (model.Type == "0")//成品入库单下发WCS信息
                    {
                        //计算出总箱数
                        var packmodel = Db.Queryable<SysPackag>().First(w=>w.PackagNo == detailModel.SkuNo);
                        int xqty = 0;
                        if (packmodel.L1Name == "箱") {
                            xqty = (int)detailModel.Qty;
                        }
                        if (packmodel.L2Name == "箱")
                        {
                            xqty = (int)(detailModel.Qty / packmodel.L2Num);
                        }
                        if (packmodel.L3Name == "箱")
                        {
                            xqty = (int)(detailModel.Qty/ packmodel.L2Num / packmodel.L3Num);
                        }
                        addOder.Add(new ResponseOrderTaskModel()
                        {
                            OrderNo = model.ASNNo,
@@ -406,7 +431,7 @@
                            SkuNo = detailModel.SkuNo,
                            SkuName = detailModel.SkuName,
                            BoxType = detailModel.Standard,
                            Qty = (int)detailModel.Qty,
                            Qty = xqty,
                            TaskType = 0
                        });
                    }
@@ -439,7 +464,7 @@
                        {
                            var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
                            //给WCS下发入库单信息
                            response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS");
                            response = HttpHelper.DoPost(url, jsonData, "下发给WCS入库命令", "WCS");
                            //解析返回数据 
                            var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
@@ -498,6 +523,7 @@
                    return strMessage;
                }
                sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';";
                var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
                if (asnInfo.Status != "0")
@@ -550,6 +576,16 @@
                    {
                        strMessage = "-1:批次号不可为空;";
                        continue;
                    }
                    if (!string.IsNullOrEmpty(detailModel.IsBale))
                    {
                        detailModel.IsBale = detailModel.IsBale == "是" ? "1" : "0";
                        if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
                        {
                            //判断是否裹包
                            strMessage = "-1:裹包字段只能录入“是”或“否”;";
                            continue;
                        }
                    }
                    if (model.Type == "2")   // 2:中间品入库
@@ -987,21 +1023,22 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public HttpReturnModel HttpCreateAsn(AsnInfo model)
        public HttpReturnModel HttpCreateAsn(AsnInfo model, string url)
        {
            try
            {
                var addOder = new List<ResponseOrderTaskModel>();
                var resultModel = new HttpReturnModel() { Success = "-1", Message = "" };
                if (string.IsNullOrEmpty(model.AsnType))
                {
                    resultModel.Message = "单据类型不可为空!";
                    return resultModel;
                }
                if (string.IsNullOrEmpty(model.Customer))
                {
                    resultModel.Message = "客户不可为空!";
                    return resultModel;
                }
                //if (string.IsNullOrEmpty(model.Customer))
                //{
                //    resultModel.Message = "客户不可为空!";
                //    return resultModel;
                //}
                if (string.IsNullOrEmpty(model.OrderCode))
                {
                    resultModel.Message = "上游系统单号不可为空!";
@@ -1014,11 +1051,14 @@
                }
                // 根据客户编号获取客户名称
                var custname = "";
                var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0");
                if (CustomerModel == null)
                if (CustomerModel != null)
                {
                    resultModel.Message = "客户编号不存在!";
                    return resultModel;
                    custname = CustomerModel.CustomerName;
                    //CustomerModel.CustomerName = "";
                    //resultModel.Message = "客户编号不存在!";
                    //return resultModel;
                }
                // 入库总表信息
@@ -1029,7 +1069,7 @@
                    Type = model.AsnType,
                    Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
                    CustomerNo = model.Customer,
                    CustomerName = CustomerModel.CustomerName,
                    CustomerName = custname,
                    OrderCode = model.OrderCode,
                };
@@ -1080,7 +1120,37 @@
                    };
                    detailModels.Add(detailModel);
                    if (model.AsnType == "0")//成品入库单下发WCS信息
                    {
                        //计算出总箱数
                        var packmodel = Db.Queryable<SysPackag>().First(w => w.PackagNo == detailModel.SkuNo);
                        int xqty = 0;
                        if (packmodel.L1Name == "箱")
                        {
                            xqty = (int)detailModel.Qty;
                        }
                        if (packmodel.L2Name == "箱")
                        {
                            xqty = (int)(detailModel.Qty / packmodel.L2Num);
                        }
                        if (packmodel.L3Name == "箱")
                        {
                            xqty = (int)(detailModel.Qty / packmodel.L2Num / packmodel.L3Num);
                        }
                        addOder.Add(new ResponseOrderTaskModel()
                        {
                            OrderNo = asnNo,
                            LotNo = asnDetailModel.LotNo,
                            SkuNo = asnDetailModel.SkuNo,
                            SkuName = skuModel.SkuName,
                            BoxType = skuModel.Standard,
                            Qty = (int)asnDetailModel.Qty,
                            TaskType = 0
                        });
                    }
                }
                Db.BeginTran();
                // 插入入库单总表
@@ -1089,6 +1159,36 @@
                // 插入入库单明细表
                Db.Insertable(detailModels).ExecuteCommand();
                Db.CommitTran();
                if (addOder.Count > 0)
                {
                    // 正式运行程序放开
                    var jsonData = JsonConvert.SerializeObject(addOder);
                    string response = "";
                    try
                    {
                        var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
                                                 //给WCS下发入库单信息
                        response = HttpHelper.DoPost(url, jsonData, "下发给WCS入库命令", "WCS");
                        //解析返回数据
                        var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
                        if (wcsModel.StatusCode == 0)
                        {
                        }
                        if (wcsModel.StatusCode == -1)
                        {
                            throw new Exception($"下发WCS失败:{wcsModel.Msg}");
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
                resultModel.Success = "0";
                resultModel.Message = "成功";
@@ -1177,7 +1277,8 @@
                if (mesList.Contains(notice.Type)) // mes 
                {
                    //获取令牌
                    var token = new Token().GetMesToken(mesTokenUrl);
                    //var token = new Token().GetMesToken(mesTokenUrl); //测试不使用TOKEN,正式运行时放开
                    var token = "";
                    Dictionary<string, string> mesDic = new Dictionary<string, string>()
                    {
                        {"Authorization",token }
@@ -1192,7 +1293,7 @@
                    var response = HttpHelper.DoPost(mesUrl, jsonData, "入库单完成上传", "MES", mesDic);
                    var obj = JsonConvert.DeserializeObject<MesModel>(response);//解析返回数据
                    if (obj.status != "0")
                    if (obj.status != "success")
                    {
                        throw new Exception("上传失败" + obj.message);
                    }