From f2bc08e28dda7022202f07217f6a3c150f818af7 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期一, 20 一月 2025 08:32:16 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/liudongl/jc24-wms

---
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs |  220 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 177 insertions(+), 43 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 4f495a4..90d2952 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -22,6 +22,7 @@
 using System.Security.Policy;
 using WMS.Entity.DataEntity;
 using WMS.Entity.BllQualityEntity;
+using Microsoft.VisualBasic;
 
 namespace WMS.BLL.BllAsnServer
 {
@@ -344,11 +345,21 @@
                             continue;
                         }
                     }
+                    if (!string.IsNullOrEmpty(detailModel.IsBale))
+                    {
+                        detailModel.IsBale = detailModel.IsBale == "鏄�" ? "1" : "0";
+                        if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
+                        {
+                            //鍒ゆ柇鏄惁瑁瑰寘
+                            strMessage = "-1:瑁瑰寘瀛楁鍙兘褰曞叆鈥滄槸鈥濇垨鈥滃惁鈥�;";
+                            continue;
+                        }
+                    }
                     if (model.Type != "7")
                     {
                         if (!TypeLot.Contains(model.Type))
                         {
-                            if (detailModel.LotNo.Length != 10)
+                            if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10)
                             {
                                 strMessage = "-1:杩涘巶缂栧彿浣嶆暟闀垮害鏈夎;";
                                 continue;
@@ -362,6 +373,19 @@
                         strMessage = "-1:鍘熷巶鎵瑰彿涓嶅彲涓虹┖;";
                         continue;
                     }
+                    if (model.Type == "2")   // 2锛氫腑闂村搧鍏ュ簱
+                    {
+                        if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+                        {
+                            throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+                        }
+                        if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+                        {
+                            throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+                        }
+                    }
+
+
                     // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
                     string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
                     sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
@@ -378,13 +402,28 @@
                     // 璁$畻鍑烘�婚噾棰�
                     detailModel.Money = detailModel.Price * detailModel.Qty;
                     sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
-                    sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
+                    sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
                     sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
                     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}');";
+                    sqlDetailStr += $"'{detailModel.Money}','{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', ";
+                    sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
 
                     if (model.Type == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
                     {
+                        //璁$畻鍑烘�荤鏁�
+                        var packmodel = Db.Queryable<SysPackag>().First(w=>w.PackagNo == detailModel.SkuNo);
+                        int xqty = 0;
+                        if (packmodel.L1Name == "绠�") {
+                            xqty = (int)detailModel.Qty;
+                        }
+                        if (packmodel.L2Name == "绠�")
+                        {
+                            xqty = (int)(detailModel.Qty / packmodel.L2Num);
+                        }
+                        if (packmodel.L3Name == "绠�")
+                        {
+                            xqty = (int)(detailModel.Qty/ packmodel.L2Num / packmodel.L3Num);
+                        }
                         addOder.Add(new ResponseOrderTaskModel()
                         {
                             OrderNo = model.ASNNo,
@@ -392,7 +431,7 @@
                             SkuNo = detailModel.SkuNo,
                             SkuName = detailModel.SkuName,
                             BoxType = detailModel.Standard,
-                            Qty = (int)detailModel.Qty,
+                            Qty = xqty,
                             TaskType = 0
                         });
                     }
@@ -415,34 +454,34 @@
                 {
                     new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
 
-                    //if (addOder.Count > 0)
-                    //{
-                    //    // 姝e紡杩愯绋嬪簭鏀惧紑
-                    //    var jsonData = JsonConvert.SerializeObject(addOder);
-                    //    string response = "";
+                    if (addOder.Count > 0)
+                    {
+                        // 姝e紡杩愯绋嬪簭鏀惧紑
+                        var jsonData = JsonConvert.SerializeObject(addOder);
+                        string response = "";
 
-                    //    try
-                    //    {
-                    //        var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                    //        //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
-                    //        response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+                        try
+                        {
+                            var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                            //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+                            response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍏ュ簱鍛戒护", "WCS");
 
-                    //        //////瑙f瀽杩斿洖鏁版嵁 
-                    //        var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
-                    //        if (wcsModel.StatusCode == 0)
-                    //        {
-                                
-                    //        }
-                    //        if (wcsModel.StatusCode == -1)
-                    //        {
+                            //瑙f瀽杩斿洖鏁版嵁 
+                            var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+                            if (wcsModel.StatusCode == 0)
+                            {
 
-                    //        }
-                    //    }
-                    //    catch (Exception ex)
-                    //    {
-                    //        throw new Exception(ex.Message);
-                    //    }
-                    //}
+                            }
+                            if (wcsModel.StatusCode == -1)
+                            {
+                                throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            throw new Exception(ex.Message);
+                        }
+                    }
                     return strMessage;
                 }
                 else
@@ -453,6 +492,7 @@
             }
             catch (Exception ex)
             {
+                Db.Ado.RollbackTran();
                 throw new Exception(ex.Message);
             }
         }
@@ -482,6 +522,7 @@
                     strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
                     return strMessage;
                 }
+
 
                 sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';";
                 var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
@@ -536,6 +577,29 @@
                         strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
                         continue;
                     }
+                    if (!string.IsNullOrEmpty(detailModel.IsBale))
+                    {
+                        detailModel.IsBale = detailModel.IsBale == "鏄�" ? "1" : "0";
+                        if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
+                        {
+                            //鍒ゆ柇鏄惁瑁瑰寘
+                            strMessage = "-1:瑁瑰寘瀛楁鍙兘褰曞叆鈥滄槸鈥濇垨鈥滃惁鈥�;";
+                            continue;
+                        }
+                    }
+
+                    if (model.Type == "2")   // 2锛氫腑闂村搧鍏ュ簱
+                    {
+                        if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+                        {
+                            throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+                        }
+                        if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+                        {
+                            throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+                        }
+                    }
+
                     // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
                     string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
                     sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
@@ -555,10 +619,12 @@
                         // 璁$畻鍑烘�婚噾棰�
                         detailModel.Money = detailModel.Price * detailModel.Qty;
                         sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
-                        sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
+                        sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
                         sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
                         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}');";
+                        sqlDetailStr += $"'{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', ";
+                        sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
+
                     }
                     else
                     {
@@ -571,6 +637,8 @@
                                          && it.SupplierLot == detailModel.SupplierLot
                                          && it.IsBale == detailModel.IsBale
                                          && it.IsBelt == detailModel.IsBelt
+                                         && it.Lot1 == detailModel.Lot1                                 // 鐢熶骇鏃ユ湡
+                                         && it.Lot2 == detailModel.Lot2                                 // 杩囨湡鏃ユ湡
                                          && it.UDF1 == detailModel.UDF1
                                          && it.UDF2 == detailModel.UDF2
                                          && it.UDF3 == detailModel.UDF3
@@ -586,6 +654,7 @@
                         sqlDetailStr += $"Qty = '{detailModel.Qty}',LotNo = '{detailModel.LotNo}',Money='{detailModel.Money}', ";
                         sqlDetailStr += $"LotText = '{detailModel.LotText}',SupplierLot = '{detailModel.SupplierLot}', ";
                         sqlDetailStr += $"IsBale = '{detailModel.IsBale}',IsBelt = '{detailModel.IsBelt}', ";
+                        sqlDetailStr += $" Lot1= '{detailModel.Lot1}',Lot2 = '{detailModel.Lot2}', ";
                         sqlDetailStr += $"UDF1 = '{detailModel.UDF1}',UDF2 = '{detailModel.UDF2}',UDF3 = '{detailModel.UDF3}',UDF4 = '{detailModel.UDF4}',UDF5 = '{detailModel.UDF5}',";
                         sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
                         sqlDetailStr += $"WHERE Id = {detailModel.Id};";
@@ -954,21 +1023,22 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public HttpReturnModel HttpCreateAsn(AsnInfo model)
+        public HttpReturnModel HttpCreateAsn(AsnInfo model, string url)
         {
             try
             {
+                var addOder = new List<ResponseOrderTaskModel>();
                 var resultModel = new HttpReturnModel() { Success = "-1", Message = "" };
                 if (string.IsNullOrEmpty(model.AsnType))
                 {
                     resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!";
                     return resultModel;
                 }
-                if (string.IsNullOrEmpty(model.Customer))
-                {
-                    resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!";
-                    return resultModel;
-                }
+                //if (string.IsNullOrEmpty(model.Customer))
+                //{
+                //    resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!";
+                //    return resultModel;
+                //}
                 if (string.IsNullOrEmpty(model.OrderCode))
                 {
                     resultModel.Message = "涓婃父绯荤粺鍗曞彿涓嶅彲涓虹┖!";
@@ -981,11 +1051,14 @@
                 }
 
                 // 鏍规嵁瀹㈡埛缂栧彿鑾峰彇瀹㈡埛鍚嶇О
+                var custname = "";
                 var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0");
-                if (CustomerModel == null)
+                if (CustomerModel != null)
                 {
-                    resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!";
-                    return resultModel;
+                    custname = CustomerModel.CustomerName;
+                    //CustomerModel.CustomerName = "";
+                    //resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!";
+                    //return resultModel;
                 }
 
                 // 鍏ュ簱鎬昏〃淇℃伅
@@ -996,7 +1069,7 @@
                     Type = model.AsnType,
                     Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
                     CustomerNo = model.Customer,
-                    CustomerName = CustomerModel.CustomerName,
+                    CustomerName = custname,
                     OrderCode = model.OrderCode,
                 };
 
@@ -1047,7 +1120,37 @@
                     };
 
                     detailModels.Add(detailModel);
+
+                    if (model.AsnType == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
+                    {
+                        //璁$畻鍑烘�荤鏁�
+                        var packmodel = Db.Queryable<SysPackag>().First(w => w.PackagNo == detailModel.SkuNo);
+                        int xqty = 0;
+                        if (packmodel.L1Name == "绠�")
+                        {
+                            xqty = (int)detailModel.Qty;
+                        }
+                        if (packmodel.L2Name == "绠�")
+                        {
+                            xqty = (int)(detailModel.Qty / packmodel.L2Num);
+                        }
+                        if (packmodel.L3Name == "绠�")
+                        {
+                            xqty = (int)(detailModel.Qty / packmodel.L2Num / packmodel.L3Num);
+                        }
+                        addOder.Add(new ResponseOrderTaskModel()
+                        {
+                            OrderNo = asnNo,
+                            LotNo = asnDetailModel.LotNo,
+                            SkuNo = asnDetailModel.SkuNo,
+                            SkuName = skuModel.SkuName,
+                            BoxType = skuModel.Standard,
+                            Qty = (int)asnDetailModel.Qty,
+                            TaskType = 0
+                        });
+                    }
                 }
+
 
                 Db.BeginTran();
                 // 鎻掑叆鍏ュ簱鍗曟�昏〃
@@ -1056,6 +1159,36 @@
                 // 鎻掑叆鍏ュ簱鍗曟槑缁嗚〃
                 Db.Insertable(detailModels).ExecuteCommand();
                 Db.CommitTran();
+
+
+                if (addOder.Count > 0)
+                {
+                    // 姝e紡杩愯绋嬪簭鏀惧紑
+                    var jsonData = JsonConvert.SerializeObject(addOder);
+                    string response = "";
+
+                    try
+                    {
+                        var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                                                 //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+                        response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍏ュ簱鍛戒护", "WCS");
+
+                        //瑙f瀽杩斿洖鏁版嵁 
+                        var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+                        if (wcsModel.StatusCode == 0)
+                        {
+
+                        }
+                        if (wcsModel.StatusCode == -1)
+                        {
+                            throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        throw new Exception(ex.Message);
+                    }
+                }
 
                 resultModel.Success = "0";
                 resultModel.Message = "鎴愬姛";
@@ -1144,7 +1277,8 @@
                 if (mesList.Contains(notice.Type)) // mes 
                 {
                     //鑾峰彇浠ょ墝
-                    var token = new Token().GetMesToken(mesTokenUrl);
+                    //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑
+                    var token = "";
                     Dictionary<string, string> mesDic = new Dictionary<string, string>()
                     {
                         {"Authorization",token }
@@ -1159,7 +1293,7 @@
                     var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic);
 
                     var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                    if (obj.status != "0")
+                    if (obj.status != "success")
                     {
                         throw new Exception("涓婁紶澶辫触" + obj.message);
                     }

--
Gitblit v1.8.0