bklLiudl
2024-07-17 5d03e942416d07962409f7d3230097463fee63fa
Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -3,6 +3,7 @@
using System.ComponentModel.Design;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
@@ -340,7 +341,7 @@
                    ParentName = "库内作业",
                    MenuName = "盘点单据",
                    FkNo = model.CrNo,
                    TypeName = "添加",
                    TypeName = "编辑",
                    Msg = $"编辑了单据号为{model.CrNo}的盘点单信息"
                });
                //var k = new OperationCrServer().AddLogOperationCr("库内作业", "盘点单据", model.CrNo, "编辑", $"编辑了单据号为{model.CrNo}的盘点单信息", _userManager.UserId);
@@ -889,8 +890,6 @@
        //盘点下发出库
        public async Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str)
        {
            try
            {
                #region 集合 
                var outDtoList = new List<OutCommandDto>(); //出库数据的集合 
                //记录错误信息的集合 
@@ -905,10 +904,23 @@
                    throw Oops.Bah($"未找到{crNo}盘点单信息");
                }
                //所有要出库的盘点明细信息(等待的信息和待拣货的信息)
            var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "InventoryCheckMethod");
            if (funSetting == null || funSetting.IsEnable == "OFF")
            {
                throw Oops.Bah("需配置盘点方式");
            }
                var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync();
                if (list.Count == 0) //判断是否有需要下发的盘点明细
                {
                    throw Oops.Bah("当前盘点单据无需要下发的托盘");
            }
            if (funSetting.SetValue == "once")
            {
                if (list.Any(s => s.Status == 1 || s.Status == 2))
                {
                    throw Oops.Bah("已有正在出库或待盘点的数据,请完成盘点后再出库");
                }
                list = new List<BllStockCheckDetail>() { list.FirstOrDefault() };
                }
                #region 
                //要出库的托盘集合
@@ -919,9 +931,7 @@
                //获取物料信息
                var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
                var time = DateTime.Now;
                Db.BeginTran();
                try
                {
            //Db.BeginTran();
                    //循环盘点明细的信息生成出库任务
                    foreach (var item in list)
                    {
@@ -1159,7 +1169,7 @@
                        TypeName = "出库",
                        Msg = $"点击出库按钮盘点单号为:{crNo}的盘点单"
                    });
                    Db.CommitTran();
            //Db.CommitTran();
                    str = string.Empty;
                    if (flagList.Count(m => m == 1) > 0)
@@ -1182,6 +1192,8 @@
                    {
                        str += "5.要出库的托盘在零箱库、";
                    }
            if (!string.IsNullOrEmpty(str))
                throw Oops.Bah(str);
                    if (outDtoList.Count > 0)
                    {
                        // 正式运行程序放开
@@ -1189,8 +1201,6 @@
                        var jsonData = JsonConvert.SerializeObject(outDtoList);
                        string response = "";
                        try
                        {
                            var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
                            //response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); //正式版本放开
                            var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
@@ -1206,27 +1216,11 @@
                            //if (wcsModel.StatusCode == -1)
                            //{
                            //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
                            //    throw new Exception(wcsModel.Msg);
                //    throw Oops.Bah(wcsModel.Msg);
                            //}
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                    }
                    return outDtoList;
                }
                catch (Exception e)
                {
                    Db.RollbackTran();
                    throw new Exception(e.Message);
                }
                #endregion
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        //盘点出库完成