Administrator
2024-03-04 0acd18b6bebdcfc24a0d7c27edb0f8ef1fc7f9aa
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -204,10 +204,18 @@
                {
                    throw new Exception("未查询到单据信息");
                }
                if (notice.Status != "5")
                {
                    throw new Exception("复核失败,单据非关闭状态");
                }
                var detail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.SONo == notice.SONo && m.IsDel == "0").ToList();
                if (detail.Count == 0)
                {
                    throw new Exception("未查询到单据明细信息");
                }
                if (userId == notice.UpdateUser)
                {
                    throw new Exception("复核失败,复核人员和关闭订单人员不能相同!");
                }
                var list = new List<SoDetail>();
                foreach (var d in detail)
@@ -225,21 +233,25 @@
                    OrderCode = notice.OrderCode,
                    SoDetails = list
                };
                // 通过接口发送至erp
                var jsonData = JsonConvert.SerializeObject(soInfo);
                #region 通过接口发送至erp
                //系统对接后放开
                /*var jsonData = JsonConvert.SerializeObject(soInfo);
                var response = HttpHelper.DoPost(url, jsonData, "出库单完成上传", "ERP");
                //解析返回数据
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                if (obj.Success != 0)
                {
                    throw new Exception("上传失败" + obj.Message);
                }
                }*/
                #endregion
                notice.Status = "6";
                notice.UpdateTime = DateTime.Now;
                notice.UpdateUser = userId;
                Db.Updateable(notice).ExecuteCommand();
                new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "复核", $"复核了单据号为{notice.SONo}的单据信息", userId);
                return true;
            }
            catch (Exception e)
@@ -325,38 +337,38 @@
                var plnList = new List<string>() { "100099" };
                var skuList = new List<string>();
                var sku = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && !plnList.Contains(m.SkuNo)); //排除空托盘的物料集合
                var inspectStatus = "1";//库存内物料的质检状态
                var skuTypeC = new List<string>() { "0" };//标准
                var skuTypeY = new List<string>() { "1" };//非标
                if (type == "0" || type == "2") //标准
                string skuType = string.Empty;
                switch (type)//0:原料 1:包材 2:成品 3:耗材 4:半成品
                {
                    inspectStatus = "0";
                    //if (type == "0") //成品
                    //{
                    skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList();
                    //}
                    //if (type == "1") //原料
                    //{
                    //    skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList();
                    //}
                    case "0"://成品入库
                        skuType = "(2)";
                        break;
                    case "1"://领料出库
                        skuType = "(0,1,3)";
                        break;
                    case "2"://抽检出库
                        skuType = "(2)";
                        break;
                    case "3"://物料取样出库
                        skuType = "(0)";
                        break;
                    case "4"://不合格品出库
                        skuType = "(2)";
                        break;
                    case "5"://中间品出库
                        skuType = "(4)";
                        break;
                    case "6"://代储出库
                        skuType = "(2)";
                        break;
                    default: //其它出库
                        skuType = "(0,1,2,3,4)";
                        break;
                }
                else if (type == "1" || type == "3") //非标
                skuList = sku.Where(m => skuType.Contains(m.Type)).Select(m => m.SkuNo).ToList();
                if (skuList == null)
                {
                    inspectStatus = "1";
                    //if (type == "2") //成品
                    //{
                    skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList();
                    //}
                    //if (type == "3") //原料
                    //{
                    //    skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList();
                    //}
                }
                else
                {
                    throw new Exception("单据状态有误");
                    throw new Exception("未查到对应出库类型的物料");
                }
                //skuList = sku.Select(m => m.SkuNo).ToList();
                var stockRst = new StockServer();
@@ -1047,10 +1059,6 @@
                {
                    throw new Exception("参数异常,请检查状态是否为执行完成或订单关闭/已上传");
                }
                if (userId == notice.UpdateUser)
                {
                    throw new Exception("复核失败,复核人员和关闭订单人员不能相同!");
                }
                //出库单明细
                var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList();
                Db.BeginTran();//开启事务
@@ -1065,13 +1073,8 @@
                    //} 
                    var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml");
                    notice.Status = "6";//状态:已上传
                    notice.CheckTime = DateTime.Now;//复核时间
                    notice.CheckUser = userId;//复核人
                    Db.Updateable(notice).ExecuteCommand();
                    ////添加操作日志记录
                     var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "复核", $"复核了单据号为{notice.SONo}的单据信息", userId);
                    //var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "关单", $"关闭了单据号为{notice.SONo}的单据信息", userId);
                    Db.CommitTran();
                    return dom;