chengsc
2025-05-23 3f9d7eb876f6d60d92e7f8a71240097b6ac50eb6
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -21,6 +21,10 @@
using Model.ModelDto.DataDto;
using System.Xml.Schema;
using ZXing.OneD;
using System.Threading.Tasks;
using System.Security.Policy;
using Newtonsoft.Json;
using Utility.Tools;
namespace WMS.BLL.BllPdaServer
{
@@ -1719,7 +1723,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model)
        public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model,string url)
        {
            try
            {
@@ -1727,27 +1731,307 @@
                {
                    throw new Exception("请扫描外箱条码!");
                }
                string sqlString = $@"SELECT
                                        ASNNo,
                                        BoxNo,
                                        SkuNo,
                                        SkuName,
                                        LotNo,
                                        BitBoxMark,
                                        SUM(Qty) as Qty
                                      FROM BllBoxInfo
                                      WHERE IsDel = '0'
                                        AND Status='0'
                                        AND BoxNo = '{model.BoxNo}'
                                      GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                if (models.Count == 0)
                if (string.IsNullOrWhiteSpace(model.ASNNo))
                {
                    throw new Exception("箱码信息不存在!");
                    throw new Exception("请选择入库单号!");
                }
                var noticeList = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.ASNNo == model.ASNNo).ToList();
                if (noticeList.Count != 1)
                {
                    throw new Exception("入库单号重复!");
                }
                var notice = noticeList.First();
                if (notice.Type == "0")  //成品入库
                {
                    string sqlString = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                    var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                return models;
                    if (models.Count != 0)
                    {
                        return models;
                    }
                    else
                    {
                        var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).ToList();
                        if (boxInfo.Count == 0)
                        {
                            models = GetFMBindBoxInfos(model.BoxNo, url);
                            return models;
                        }
                        else
                        {
                            if (boxInfo.Count(m => m.Status != "0") > 0)
                            {
                                throw new Exception("箱码信息状态不是等待执行");
                            }
                            return models;
                        }
                    }
                }
                else if (notice.Type == "1" || notice.Type == "4") //采购入库
                {
                    string sqlString = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                    var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                    if (models.Count != 0)
                    {
                        return models;
                    }
                    else
                    {
                        throw new Exception("没有查询到箱码信息");
                    }
                }
                else if (notice.Type == "3") //退货入库
                {
                    string sqlString = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                    var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                    if (models.Count != 0)
                    {
                        return models;
                    }
                    else
                    {
                        sqlString = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo2 = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                        models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                        if (models.Count != 0)
                        {
                            return models;
                        }
                        else
                        {
                            sqlString = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo3 = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                            models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
                            if (models.Count != 0)
                            {
                                return models;
                            }
                        }
                    }
                    #region 获取最后一次出库拣货中的箱码信息
                    var comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
                    if (comBox.Count == 0)
                    {
                        comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo2 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
                        if (comBox.Count == 0)
                        {
                            comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo3 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
                        }
                    }
                    var i = 0;//循环次数
                    DateTime time = DateTime.Now;
                    var allotId = 0;
                    foreach (var item in comBox)
                    {
                        var comBoxList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == item).OrderByDescending(m => m.CreateTime).First();
                        if (i == 0)
                        {
                            time = comBoxList.CreateTime;
                            allotId = comBoxList.ExportAllotId;
                        }
                        else if (comBoxList.CreateTime > time)
                        {
                            time = comBoxList.CreateTime;
                            allotId = comBoxList.ExportAllotId;
                        }
                        i++;
                    }
                    if (allotId != 0)
                    {
                        var addComBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotId).ToList();
                        var addComList = addComBox.GroupBy(m => m.BoxNo).ToList();
                        var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == addComBox.First().SkuNo);
                        var pNum = 0;
                        var bNum = 0;
                        new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                        var boxList = new List<BllBoxInfo>();
                        foreach (var com in addComList)
                        {
                            //箱内总数和
                            var qtySum = addComBox.Where(m => m.BoxNo == com.Key).Sum(m => m.CompleteQty);
                            var bitBox = "1";
                            if (qtySum == bNum)
                            {
                                bitBox = "0";
                            }
                            foreach (var item in com)
                            {
                                if (item.BoxNo != model.BoxNo)
                                {
                                    if (item.BoxNo2 != model.BoxNo)
                                    {
                                        if (item.BoxNo3 != model.BoxNo)
                                        {
                                            continue;
                                        }
                                    }
                                }
                                var boxInfo = new BllBoxInfo()
                                {
                                    BoxNo = item.BoxNo,
                                    BoxNo2 = item.BoxNo2,
                                    BoxNo3 = item.BoxNo3,
                                    SkuNo = item.SkuNo,
                                    SkuName = item.SkuName,
                                    LotNo = item.LotNo,
                                    LotText = item.LotText,
                                    Qty = (decimal)item.CompleteQty,
                                    FullQty = bNum,
                                    //ProductionTime = ,
                                    //ExpirationTime = ,
                                    InspectMark = "0",
                                    InspectStatus = "0",
                                    BitBoxMark = bitBox,
                                    Origin = "WMS",
                                    Status = "0",
                                    CreateUser = 0
                                };
                                boxList.Add(boxInfo);
                            }
                        }
                        Db.Insertable(boxList).ExecuteCommand();
                        string sqlString2 = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                        var models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
                        if (models2.Count != 0)
                        {
                            return models2;
                        }
                        else
                        {
                            sqlString2 = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo2 = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                            models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
                            if (models2.Count != 0)
                            {
                                return models2;
                            }
                            else
                            {
                                sqlString2 = $@"SELECT
                                            ASNNo,
                                            BoxNo,
                                            SkuNo,
                                            SkuName,
                                            LotNo,
                                            BitBoxMark,
                                            SUM(Qty) as Qty
                                          FROM BllBoxInfo
                                          WHERE IsDel = '0'
                                            AND Status='0'
                                            AND BoxNo3 = '{model.BoxNo}'
                                          GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
                                models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
                                if (models2.Count != 0)
                                {
                                    return models2;
                                }
                            }
                        }
                    }
                    throw new Exception("箱码信息不存在!");
                    #endregion
                }
                else
                {
                    throw new Exception("单据类型错误");
                }
            }
            catch (Exception ex)
            {
@@ -1760,21 +2044,83 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List<BoxInfoDto> GetFMBindBoxInfos(string boxno)
        public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
        {
            try
            {
                #region 箱码请求接口,正式系统放开
                /*var jsonData = JsonConvert.SerializeObject(boxno);
                var data = new
                {
                    BoxCode = boxno
                };
                var jsonData = JsonConvert.SerializeObject(data);
                var response = HttpHelper.DoPost(url, jsonData, "箱码信息请求", "FM");
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                if (obj.Success != 0)
                var obj = JsonConvert.DeserializeObject<FumaGetBoxModel>(response);//解析返回数据
                if (obj.Success != "0")
                {
                    throw new Exception("请求失败" + obj.Message);
                }*/
                }
                #endregion
                var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == obj.Product.SkuNo);
                var pNum = 0;//托盘物品数量
                var bNum = 0;//箱码物品数量
                if (sku == null)
                {
                    throw new Exception($"未查询到物料{obj.Product.SkuNo}信息");
                }
                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.Product.BoxInfoList)
                {
                    foreach (var box2 in box.BoxInfo2List)
                    {
                        foreach (var box3 in box2.BoxInfo3List)
                        {
                            var boxInfo = new BllBoxInfo()
                            {
                                BoxNo = box.BoxNo,
                                BoxNo2 = box2.BoxNo2,
                                BoxNo3 = box3.BoxNo3,
                                Qty = box3.Qty,
                                BitBoxMark = box.BitBoxMark,
                                ASNNo = "",
                                //ASNDetailNo = noticeDetail.Id,
                                OrderCode = "",//notice.OrderCode
                                //BindNo = bindId,
                                //PalletNo = model.PallNo,
                                FullQty = bNum,
                                Status = "2",
                                SkuNo = sku.SkuNo,
                                SkuName = sku.SkuName,
                                LotNo = obj.Product.LotNo,
                                LotText = obj.Product.LotText,
                                ProductionTime = DateTime.Parse(obj.Product.ProductionTime),
                                ExpirationTime = DateTime.Parse(obj.Product.ExpirationTime),
                                //CompleteTime = "",
                                InspectMark = "0",
                                InspectStatus = "0",
                                Origin = "赋码",
                                CreateTime = comTime,
                                CreateUser = 0
                            };
                            boxList.Add(boxInfo);
                        }
                    }
                }
                Db.Fastest<BllBoxInfo>().BulkCopy(boxList);
                string sqlString = $@"SELECT 
                                        ASNNo,
                                        BoxNo, 
@@ -1826,11 +2172,16 @@
                {
                    if (models[0].Status == "1")
                    {
                        sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';";
                        int rowNum = Db.Ado.GetInt(sqlString);
                        if (rowNum > 0)
                        var detail = Db.Queryable<DataStockDetail>().First(m=>m.PalletNo == palletNo );
                        if (detail!= null && !string.IsNullOrWhiteSpace(detail.LocatNo))
                        {
                            sqlMsg = "-1:托盘使用中,此托盘应在库内请核实!";
                            var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList();
                            var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == detail.LocatNo && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0");
                            if (pingLocateInfo == null)
                            {
                                sqlMsg = "-1:托盘使用中,此托盘应在库内请核实!";
                            }
                        }
                    }
                }
@@ -1889,6 +2240,172 @@
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 保存指定的储位
        /// </summary>
        /// <param name="palletNo"></param>
        /// <param name="locateNo"></param>
        /// <param name="userId"></param>
        /// <exception cref="Exception"></exception>
        public void SaveAppointLocate(string palletNo, string locateNo, int userId)
        {
            try
            {
                //托盘库存信息
                var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList();
                if (stockDetailList.Count(m=> string.IsNullOrWhiteSpace(m.LocatNo)) > 0)
                {
                    throw new Exception("托盘没有在平库储位上");
                }
                //判断托盘的储位是否是平库
                var stockDetail = stockDetailList.First();
                var oldLocate = stockDetail.LocatNo;
                var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList();
                var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldLocate && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0");
                if (pingLocateInfo == null)
                {
                    throw new Exception("当前托盘所在的储位没有在系统中找到信息");
                }
                var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                //验证物料是否有成品
                foreach (var item in stockDetailList)
                {
                    var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
                    if (skuItem.Type == "2")
                    {
                        throw new Exception("成品物料请入成品库");
                    }
                }
                //储位
                var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateNo);
                if (locate == null)
                {
                    throw new Exception("未查询到储位的信息");
                }
                if (locate.WareHouseNo != "W02")
                {
                    throw new Exception("只能指定立库的储位");
                }
                if (locate.Status != "0" || locate.Flag != "0")
                {
                    throw new Exception("该储位状态不是空储位或标志不是正常的");
                }
                Db.BeginTran();
                try
                {
                    var time = DateTime.Now;
                    //判断当前托盘是否存在绑定信息
                    var task = Db.Queryable<LogTask>().First(m=> m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1") && m.OrderType == "0" && m.Type == "0");
                    var upShelf = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
                    if (task != null)
                    {
                        if (task.Status == "1")
                        {
                            throw new Exception("托盘正在执行任务,不可指定储位");
                        }
                        if (task.Status == "0")
                        {
                            if (upShelf != null)
                            {
                                if (upShelf.Status == "1")
                                {
                                    throw new Exception("托盘正在执行上架任务,不可指定储位");
                                }
                                if (upShelf.Status == "0")
                                {
                                    if (locate.LocatNo == task.EndLocat)
                                    {
                                        throw new Exception("已指定储位,无需重复指定");
                                    }
                                    //重新指定储位
                                    task.EndLocat = locate.LocatNo;
                                    task.EndRoadway = locate.RoadwayNo;
                                    upShelf.LocatNo = locate.LocatNo;
                                    upShelf.RoadwayNo = locate.RoadwayNo;
                                    Db.Updateable(task).ExecuteCommand();
                                    Db.Updateable(upShelf).ExecuteCommand();
                                    new OperationASNServer().AddLogOperationAsn("PDA模块", "指定储位", palletNo, "编辑", $"指定了储位:{locate.LocatNo}、托盘码:{palletNo}的信息", userId);
                                    Db.CommitTran();
                                    return;
                                }
                            }
                            else
                            {
                                throw new Exception("查询出任务但没有上架记录,信息错误");
                            }
                        }
                    }
                    // 添加入库日志记录
                    var taskNo = new Common().GetMaxNo("TK");
                    var addTask = new LogTask    //入库任务
                    {
                        TaskNo = taskNo,
                        Sender = "WMS",
                        Receiver = "WCS",
                        IsSuccess = 1, //是否下发成功 0失败 1成功
                        SendDate = DateTime.Now,  //发送时间
                        //BackDate = DateTime.Now,  //返回时间
                        StartRoadway = "",            // 起始巷道
                        StartLocat = oldLocate,//起始位置
                        EndLocat = locate.LocatNo,//目标位置
                        EndRoadway = locate.RoadwayNo,  // 目标巷道
                        PalletNo = palletNo,//托盘码
                        IsSend = 1,//是否可再次下发
                        IsCancel = 1,//是否可取消
                        IsFinish = 1,//是否可完成
                        Type = "0",//任务类型 0 入库任务 1 出库任务  2 移库任务
                        Status = "0",//任务状态0:等待执行1正在执行2执行完成
                        OrderType = "0",//0 入库单 1 出库单  2 盘点单  3 移库单
                        Msg = $"{oldLocate}到=>>{locate.LocatNo}的入库任务", //关键信息
                    };
                    Db.Insertable(addTask).ExecuteCommand();
                    //添加托盘上架记录
                    var upShelfAdd = new BllPalletUpShelf()
                    {
                        TaskNo = addTask.TaskNo,
                        TraceNo = "",
                        PalletNo = palletNo,
                        SkuNo = stockDetail.SkuNo,
                        SkuName = stockDetail.SkuName,
                        LotNo = stockDetail.LotNo,
                        Status = "0",
                        WareHouseNo = locate.WareHouseNo,
                        RoadwayNo = locate.RoadwayNo,
                        AreaNo = locate.AreaNo,
                        LocatNo = locate.LocatNo,
                        CreateUser = 0,
                    };
                    Db.Insertable(upShelfAdd).ExecuteCommand();
                    locate.Status = "2";
                    Db.Updateable(locate).ExecuteCommand();
                    new OperationASNServer().AddLogOperationAsn("PDA模块", "指定储位", palletNo, "编辑", $"指定了储位:{locate.LocatNo}、托盘码:{palletNo}的信息", userId);
                    Db.CommitTran();
                }
                catch (Exception e)
                {
                    Db.RollbackTran();
                    throw new Exception(e.Message);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
@@ -2141,35 +2658,35 @@
                };
                var id = Db.Insertable(modelpb).ExecuteReturnIdentity();
                var modelbb = new BllBoxInfo
                {
                    ASNNo = "",
                    ASNDetailNo = null,
                    BindNo = id,
                    PalletNo = model.PalletNo,
                    PalletNo2 = model.PalletNo2,
                    PalletNo3 = model.PalletNo3,
                    Status = "2",
                    CompleteTime = DateTime.Now,
                    Qty = (int)model.Qty,
                    FullQty = pNum,
                    SkuNo = sku.SkuNo,
                    SkuName = sku.PackagNo,
                    LotNo = "",
                    LotText = "",
                    SupplierLot = "",
                    InspectStatus = sku.IsInspect,
                    Origin = "PDA",
                    BoxNo = "",
                    BoxNo2 = "",
                    BoxNo3 = "",
                    InspectMark = "",
                    BitBoxMark = "0",
                //var modelbb = new BllBoxInfo
                //{
                //    ASNNo = "",
                //    ASNDetailNo = null,
                //    BindNo = id,
                //    PalletNo = model.PalletNo,
                //    PalletNo2 = model.PalletNo2,
                //    PalletNo3 = model.PalletNo3,
                //    Status = "2",
                //    CompleteTime = DateTime.Now,
                //    Qty = (int)model.Qty,
                //    FullQty = pNum,
                //    SkuNo = sku.SkuNo,
                //    SkuName = sku.SkuName,
                //    LotNo = "",
                //    LotText = "",
                //    SupplierLot = "",
                //    InspectStatus = sku.IsInspect,
                //    Origin = "PDA",
                //    BoxNo = "",
                //    BoxNo2 = "",
                //    BoxNo3 = "",
                //    InspectMark = "",
                //    BitBoxMark = "0",
                    CreateUser = (int)model.CreateUser,
                    CreateTime = datetime
                };
                Db.Insertable(modelbb).ExecuteCommand();
                //    CreateUser = (int)model.CreateUser,
                //    CreateTime = datetime
                //};
                //Db.Insertable(modelbb).ExecuteCommand();
                //添加库存
@@ -2217,35 +2734,35 @@
                #region 库存箱码明细
                var box2 = new DataBoxInfo()
                {
                    StockDetailId = sdId1,
                    BindNo = modelpb.Id,
                    BoxNo = modelbb.BoxNo,
                    BoxNo2 = modelbb.BoxNo2,
                    BoxNo3 = modelbb.BoxNo3,
                    PalletNo = modelbb.PalletNo,
                    PalletNo2 = modelbb.PalletNo2,
                    PalletNo3 = modelbb.PalletNo3,
                    Qty = modelbb.Qty,
                    FullQty = modelbb.FullQty,
                    Status = "2",
                    LotNo = modelbb.LotNo,
                    LotText = modelbb.LotText,
                    SkuNo = modelbb.SkuNo,
                    SkuName = modelbb.SkuName,
                    Standard = sku.Standard,
                    ProductionTime = modelbb.ProductionTime,
                    SupplierLot = modelbb.SupplierLot,
                    InspectStatus = sku.IsInspect,
                    InspectMark = modelbb.InspectMark,
                    BitBoxMark = modelbb.BitBoxMark,
                    ExpirationTime = modelbb.ExpirationTime,
                //var box2 = new DataBoxInfo()
                //{
                //    StockDetailId = sdId1,
                //    BindNo = modelpb.Id,
                //    BoxNo = modelbb.BoxNo,
                //    BoxNo2 = modelbb.BoxNo2,
                //    BoxNo3 = modelbb.BoxNo3,
                //    PalletNo = modelbb.PalletNo,
                //    PalletNo2 = modelbb.PalletNo2,
                //    PalletNo3 = modelbb.PalletNo3,
                //    Qty = modelbb.Qty,
                //    FullQty = modelbb.FullQty,
                //    Status = "2",
                //    LotNo = modelbb.LotNo,
                //    LotText = modelbb.LotText,
                //    SkuNo = modelbb.SkuNo,
                //    SkuName = modelbb.SkuName,
                //    Standard = sku.Standard,
                //    ProductionTime = modelbb.ProductionTime,
                //    SupplierLot = modelbb.SupplierLot,
                //    InspectStatus = sku.IsInspect,
                //    InspectMark = modelbb.InspectMark,
                //    BitBoxMark = modelbb.BitBoxMark,
                //    ExpirationTime = modelbb.ExpirationTime,
                    CreateUser = 0,
                    CreateTime = datetime
                };
                Db.Insertable(box2).ExecuteCommand();
                //    CreateUser = 0,
                //    CreateTime = datetime
                //};
                //Db.Insertable(box2).ExecuteCommand();
                #endregion
                #region 库存 
@@ -3287,7 +3804,7 @@
            try
            {
                string strMsg = "";
                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W02");
                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W04");
                if (storageLocat == null)
                {
                    throw new Exception("-1:地码(储位信息)不存在或非空闲状态,请核查!");
@@ -5424,7 +5941,7 @@
                    //修改库存明细信息
                    foreach (var item in stockDetail)
                    {
                        item.Status = "0";                                  // 状态更改为待分配
                        //item.Status = "0";                                  // 状态更改为待分配
                        item.WareHouseNo = storageLocat.WareHouseNo;        // 所属仓库
                        item.RoadwayNo = storageLocat.RoadwayNo;            // 所属巷道
                        item.AreaNo = storageLocat.AreaNo;                  // 所属区域
@@ -5434,16 +5951,7 @@
                        //修改库存明细信息                                           
                        Db.Updateable(item).ExecuteCommand();
                    }
                    //获取拣货信息
                    var alotr = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.PalletNo == model.PalletNo && a.Status == "4");
                    if (alotr != null)
                    {
                        alotr.Status = "5"; //5 已完成
                        alotr.UpdateUser = model.CreateUser; //修改人
                        alotr.UpdateTime = serverTime; //修改时间
                        //修改拣货信息
                        Db.Updateable(alotr).ExecuteCommand();
                    }
                    #region 任务及组托信息
                    //创建任务信息
                    var taskNo = new Common().GetMaxNo("TK");
@@ -5456,14 +5964,14 @@
                        SendDate = DateTime.Now,  //发送时间
                        BackDate = DateTime.Now,  //返回时间
                        StartLocat = "",//起始位置
                        EndLocat = "平库",//目标位置
                        EndLocat = model.LocatNo,//目标位置
                        PalletNo = model.PalletNo,//托盘码
                        IsSend = 0,//是否可再次下发
                        IsCancel = 0,//是否可取消
                        IsFinish = 0,//是否可完成
                        Type = "0",//任务类型 0 入库任务 1 出库任务  2 移库任务
                        Status = "2",//任务状态0:等待执行1正在执行2执行完成
                        OrderType = "3",//0 入库单 1 出库单  2 盘点单  3 移库单
                        OrderType = "0",//0 入库单 1 出库单  2 盘点单  3 移库单
                        Msg = "平库的入库任务",
                    };
                    Db.Insertable(exTask).ExecuteCommand();
@@ -5488,15 +5996,15 @@
                    var upShelf = new BllPalletUpShelf()
                    {
                        TaskNo = exTask.TaskNo,
                        TraceNo = bindInfo.ASNNo,
                        PalletNo = bindInfo.PalletNo,
                        TraceNo = bindInfo== null? "": bindInfo.ASNNo,
                        PalletNo = model.PalletNo,
                        SkuNo = palletupinfo.SkuNo,
                        SkuName = palletupinfo.SkuName,
                        LotNo = palletupinfo.LotNo,
                        Status = "2",
                        LocatNo = model.LocatNo,
                        WareHouseNo = bindInfo.WareHouseNo,
                        RoadwayNo = bindInfo.RoadwayNo,
                        WareHouseNo = storageLocat.WareHouseNo,
                        RoadwayNo = storageLocat.RoadwayNo,
                        AreaNo = storageLocat.AreaNo,
                        CreateUser = 0,