test
9 小时以前 b2fc93e15a14847141b0a0a8bd591b945c9fa0a3
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -30,6 +30,7 @@
using System.Security.Cryptography.X509Certificates;
using AutoMapper.Configuration.Annotations;
using Utility;
using System.Diagnostics.Metrics;
namespace WMS.BLL.BllPdaServer
{
@@ -2081,7 +2082,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
        /*public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
        {
            try
            {
@@ -2184,6 +2185,132 @@
            {
                throw ex;
            }
        }*/
        public List<BoxInfoDto> GetFMBindBoxInfos(string boxno, string url)
        {
            try
            {
                #region 箱码请求接口,正式系统放开
                var data = new
                {
                    BoxNo = boxno
                };
                var jsonData = JsonConvert.SerializeObject(data);
                var response = HttpHelper.DoPost(url, jsonData, "箱码信息请求", "FM");
                var obj = JsonConvert.DeserializeObject<FuMaPostModel>(response);//解析返回数据
                if (obj.Success != true)
                {
                    throw new Exception("请求失败" + obj.Message);
                }
                #endregion
                if (string.IsNullOrEmpty(obj.Data.SkuNo))
                {
                    //测试用,发布正式前删除此段代码
                    //obj.Data.SkuNo = "50004632";
                    throw new Exception($"物料编码不能为空");
                }
                //查找物料信息
                var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == obj.Data.SkuNo);
                if (sku == null)
                {
                    throw new Exception($"未查询到物料{obj.Data.SkuNo}信息");
                }
                var pNum = 0;//托盘物品数量
                var bNum = 0;//箱码物品数量
                //获取包装信息
                new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                if (pNum == 0 || bNum == 0)
                {
                    throw new Exception($"{sku.SkuNo}物品包装未找到!");
                }
                var boxList = new List<BllBoxInfo>();
                var comTime = DateTime.Now;
                //添加箱码信息
                foreach (var box in obj.Data.DetailList)
                {
                    foreach (var box2 in box.DetailList2)
                    {
                        var boxInfo = new BllBoxInfo()
                        {
                            BoxNo = obj.Data.BoxNo,
                            BoxNo2 = box.BoxNo2,
                            BoxNo3 = box2.BoxNo3,
                            Qty = obj.Data.Qty,
                            BitBoxMark = obj.Data.BitBoxMark,
                            ASNNo = "",
                            //ASNDetailNo = noticeDetail.Id,
                            OrderCode = "",//notice.OrderCode
                                           //BindNo = bindId,
                                           //PalletNo = model.PallNo,
                            FullQty = bNum,
                            Status = "0",
                            SkuNo = sku.SkuNo,
                            SkuName = sku.SkuName,
                            LotNo = box2.LotNo,
                            LotText = obj.Data.LotNoBoxNum,
                            ProductionTime = DateTime.Parse(box2.ProductionTime),
                            ExpirationTime = DateTime.Parse(box2.ExpirationTime),
                            //CompleteTime = "",
                            InspectMark = "0",
                            InspectStatus = "0",
                            Origin = "赋码",
                            CreateTime = comTime,
                            CreateUser = 0
                        };
                        boxList.Add(boxInfo);
                    };
                }
                try
                {
                    //开启事务
                    Db.BeginTran();
                    Db.Fastest<BllBoxInfo>().BulkCopy(boxList);
                    //提交事务
                    Db.CommitTran();
                }
                catch (Exception ex)
                {
                    //回滚事务
                    Db.RollbackTran();
                    throw new Exception("插入箱码失败:" + ex.Message);
                }
                string sqlString = $@"SELECT
                                        ASNNo,
                                        BoxNo,
                                        SkuNo,
                                        SkuName,
                                        LotNo,
                                        BitBoxMark,
                                        SUM(Qty) as Qty
                                      FROM BllBoxInfo
                                      WHERE IsDel = '0'
                                        AND Status='0'
                                        AND BoxNo = '{boxno}'
                                      GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                if (models.Count == 0)
                {
                    throw new Exception("箱码信息不存在!");
                }
                return models;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>