chengsc
2024-10-18 f2b3c45b78bb9fc021869c4ae35e6de039b50bbf
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -20,6 +20,8 @@
using WMS.BLL.SysServer;
using System.Threading.Tasks;
using System.Security.Policy;
using WMS.Entity.DataEntity;
using WMS.Entity.BllQualityEntity;
namespace WMS.BLL.BllAsnServer
{
@@ -191,7 +193,7 @@
                        skuType = "(0,1,3)";
                        break;
                    case "6"://代储入库
                        skuType = "(2)";
                        skuType = "(0,1,2,3,4)";
                        IsPack = 2; //不贴
                        break;
                    case "7"://寄存入库
@@ -262,7 +264,7 @@
            string sqlString = string.Empty;
            string sqlDetailStr = string.Empty;
            //0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料入库 5:其它入库 6:代储入库 7:寄存入库
            var TypeLot = "1, 2, 5, 6, 7"; //批次可为空单据类型
            var TypeLot = "2, 5, 6, 7"; //批次可为空单据类型
            var addOder = new List<ResponseOrderTaskModel>();
            try
@@ -284,13 +286,13 @@
                }
                //判断是否为采购入库单据或车间余料退回入库
                // 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库
                if (model.Type == "1" || model.Type == "4")
                {
                    if (!string.IsNullOrWhiteSpace(model.LotNo))
                    {
                        throw new Exception("采购入库或余料退回不可输入批次,不可编辑!");
                    }
                }
                //if (model.Type == "1" || model.Type == "4")
                //{
                //    if (!string.IsNullOrWhiteSpace(model.LotNo))
                //    {
                //        throw new Exception("采购入库或余料退回不可输入批次,不可编辑!");
                //    }
                //}
                sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,";
                sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( ";
@@ -320,9 +322,27 @@
                        //判断是否为不限制批次单据
                        if (!TypeLot.Contains(model.Type))
                        {
                            strMessage = "-1:批次号不可为空;";
                            strMessage = "-1:进厂编号不可为空;";
                            continue;
                        }
                    }
                    if (model.Type != "7")
                    {
                        if (!TypeLot.Contains(model.Type))
                        {
                            if (detailModel.LotNo.Length != 10)
                            {
                                strMessage = "-1:进厂编号位数长度有误;";
                                continue;
                            }
                        }
                    }
                    if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //采购到货单原厂批号(供货批次)不能为空
                    {
                        strMessage = "-1:原厂批号不可为空;";
                        continue;
                    }
                    // 判断是否已存在当前明细
                    string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
@@ -330,7 +350,7 @@
                    var com = new Common().GetRowCount(sqlCount);
                    if (com > 0)
                    {
                        strMessage = "-1:物料和批次号重复;";
                        strMessage = "-1:物料和进厂编号重复;";
                        continue;
                    }
                    if (detailModel.Price == null)
@@ -345,7 +365,7 @@
                    sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
                    sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
                    if (model.Type == "1")
                    if (model.Type == "0")//成品入库单下发WCS信息
                    {
                        addOder.Add(new ResponseOrderTaskModel()
                        {
@@ -373,49 +393,48 @@
                    rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
                }
                Db.Ado.CommitTran();
                //if (rowCount > 0 && rowDetailCount > 0)  判断需要添加上单据类型
                //{
                //    new OperationASNServer().AddLogOperationAsn("入库作业", "入库单据", model.ASNNo, "添加", $"添加了单据号为{model.ASNNo}的单据信息", Convert.ToInt32(model.CreateUser));
                if (rowCount > 0 && rowDetailCount > 0)
                {
                    new OperationASNServer().AddLogOperationAsn("入库作业", "入库单据", model.ASNNo, "添加", $"添加了单据号为{model.ASNNo}的单据信息", Convert.ToInt32(model.CreateUser));
                //    if (addOder.Count > 0)
                //    {
                //        // 正式运行程序放开
                //        var jsonData = JsonConvert.SerializeObject(addOder);
                //        string response = "";
                    //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");
                    //    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)
                //            {
                    //        //////解析返回数据
                    //        var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
                    //        if (wcsModel.StatusCode == 0)
                    //        {
                                
                //            }
                //            if (wcsModel.StatusCode == -1)
                //            {
                    //        }
                    //        if (wcsModel.StatusCode == -1)
                    //        {
                //            }
                //        }
                //        catch (Exception ex)
                //        {
                //            throw new Exception(ex.Message);
                //        }
                //    }
                    //        }
                    //    }
                    //    catch (Exception ex)
                    //    {
                    //        throw new Exception(ex.Message);
                    //    }
                    //}
                    return strMessage;
                //}
                //else
                //{
                //    Db.Ado.RollbackTran();
                //    return "-2:添加失败数据回滚!";
                //}
                }
                else
                {
                    Db.Ado.RollbackTran();
                    return "-2:添加失败数据回滚!";
                }
            }
            catch (Exception ex)
            {
                Db.Ado.RollbackTran();
                throw new Exception(ex.Message);
            }
        }
@@ -1054,6 +1073,19 @@
                {
                    throw new Exception("复核失败,复核人员和关闭订单人员不能相同!");
                }
                //单据类型是 成品入库或采购入库 判断入库物料是否合格
                if (notice.Type == "0" || notice.Type == "1")
                {
                    foreach (var item in detail)
                    {
                        var instStatus = Db.Queryable<BllQualityInspect>().Count(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.IsQualified == "1");
                        if (instStatus == 0)
                        {
                            throw new Exception($"{item.SkuNo}、{item.LotNo}质量状态不是合格的,不能回传!");
                        }
                    }
                }
                var list = new List<AsnDetail>();
                foreach (var d in detail)
                {