From bec134656a5a8057435d77f5f8154928fb2625f9 Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期三, 17 七月 2024 15:57:44 +0800
Subject: [PATCH] 更改sql写法

---
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs |  416 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 251 insertions(+), 165 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 829458d..93c6c16 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -8,18 +8,15 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq.Expressions;
-using Model.ModelVm.BllAsnVm;
-using Newtonsoft.Json;
-using Utility.Tools;
+using System.Threading.Tasks;
 using WMS.BLL.LogServer;
 using WMS.DAL;
 using WMS.Entity.BllAsnEntity;
+using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
+using WMS.Entity.DataEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.IBllAsnServer;
-using WMS.Entity.BllSoEntity;
-using WMS.Entity.DataEntity;
-using System.Threading.Tasks;
 
 namespace WMS.BLL.BllAsnServer
 {
@@ -68,7 +65,7 @@
                     CustomerName = tb1.CustomerName,
                     LotNo = tb1.LotNo,
                     LotText = tb1.LotText,
-                    CheckTime = tb1.CheckTime.ToString(),
+                    CheckTime = ((DateTime)tb1.CheckTime).ToString("yyyy-MM-dd HH:mm:ss"),
                     CheckUserName = tb5.RealName,
                     SupplierLot = tb1.SupplierLot,
                     Demo = tb1.Demo,
@@ -76,7 +73,7 @@
                     CompleteTime = tb1.CompleteTime,
                     CreateTime = tb1.CreateTime,
                     CreateUserName = tb3.RealName,
-                    UpdateTime = tb1.UpdateTime.ToString(),
+                    UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
                     UpdateUserName = tb4.RealName
 
                 }).ToPageListAsync(model.Page, model.Limit, count);
@@ -129,8 +126,8 @@
                      CompleteTime = tb1.CompleteTime,
                      CreateTime = tb1.CreateTime,
                      CreateUserName = tb3.RealName,
-                     UpdateTime = tb1.UpdateTime.ToString(),
-                     UpdateUserName = tb4.RealName
+                     UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
+                    UpdateUserName = tb4.RealName
                  }).ToPageListAsync(model.Page, model.Limit, count);
 
             return modelList;
@@ -165,49 +162,32 @@
             {
                 string skuType = string.Empty;
                 int IsPack = 2; // 0锛氫笉璐� 1锛氳创 2锛氫笉绠�
-                /**
-                 * 鎴愬搧璐� 		0
-                 * 閲囪喘鍙创鍙笉璐�	1
+                /** model.type 锛堝崟鎹被鍨�)
+                 * 鎴愬搧鍏ュ簱     0
+                 * 閲囪喘鍏ュ簱 	1
                  * 涓棿鍝佷笉璐�	2
-                 * 閫�璐ц创		3
-                 * 浣欐枡閫�鍥炲彲璐村彲涓嶈创	4
-                 * 鍏跺畠鍙创鍙笉璐�	5
-                 * 浠e偍涓嶈创		6
-                 * 瀵勫瓨涓嶈创		7
+                 * 閫�璐у叆搴�		3
+                 * 浣欐枡閫�鍥炲叆搴�	4
                  */
                 switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
                 {
                     case "0"://鎴愬搧鍏ュ簱
                         skuType = "(2)";
-                        IsPack = 1; //璐�
                         break;
                     case "1"://閲囪喘鍏ュ簱
                         skuType = "(0,1,3)";
                         break;
                     case "2"://涓棿鍝佸叆搴�
                         skuType = "(4)";
-                        IsPack = 0; //涓嶈创
                         break;
                     case "3"://閫�璐у叆搴�
-                        skuType = "(0,2)";
-                        IsPack = 1; //璐�
+                        skuType = "(2)";
                         break;
                     case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
-                        skuType = "(0,1,3)";
-                        break;
-                    case "5"://鍏跺畠鍏ュ簱
-                        skuType = "(0,1,2,3,4)";
-                        break;
-                    case "6"://浠e偍鍏ュ簱
-                        skuType = "(2)";
-                        IsPack = 0; //涓嶈创
-                        break;
-                    case "7"://瀵勫瓨鍏ュ簱
-                        //skuType = "(3)";
-                        IsPack = 0; //涓嶈创
+                        skuType = "(0,1,2,3)";
                         break;
                     default: //鍏跺畠
-                        //skuType = "(0,1,2,3,4)";
+                        skuType = "(0,1,2,3,4)";
                         break;
                 }
 
@@ -229,8 +209,6 @@
                     .Includes(x => x.UnitInfo)
                     .Includes(x => x.PackagInfo)
                     .ToList();
-
-
 
                 return data.Select(m => new MaterialsDto()
                 {
@@ -266,10 +244,15 @@
         public string AddArrivalNotice(ArrivalNoticeVm model)
         {
             string strMessage = "";
-            string sqlString = string.Empty;
-            string sqlDetailStr = string.Empty;
-            //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-            var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+
+            /** model.type 锛堝崟鎹被鍨�)
+            * 鎴愬搧鍏ュ簱     0
+            * 閲囪喘鍏ュ簱 	1
+            * 涓棿鍝佷笉璐�	2
+            * 閫�璐у叆搴�		3
+            * 浣欐枡閫�鍥炲叆搴�	4
+            */
+            var TypeLot = "1, 5, 6, 7";         //鎵规鍙负绌哄崟鎹被鍨�
 
             try
             {
@@ -291,14 +274,23 @@
                 
                 lock (AsnLock)
                 {
-                    sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,";
-                    sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( ";
-                    sqlString += $"'{model.ASNNo}','{model.Type}','{model.Origin}','{model.CustomerNo}', ";
-                    sqlString += $"'{model.CustomerName}','{model.LotNo}','{model.LotText}','{model.SupplierLot}','{model.CreateUser}');";
+                    // 鎬昏〃瀹炰綋璧嬪��
+                    BllArrivalNotice ASNModel = new BllArrivalNotice()
+                    {
+                        ASNNo = model.ASNNo,
+                        Type = model.Type,
+                        Origin = model.Origin,
+                        CustomerNo = model.CustomerNo,
+                        CustomerName = model.CustomerName,
+                        Status = "0",
+                        LotNo = model.LotNo,
+                        LotText = model.LotText,
+                        SupplierLot = model.SupplierLot,                     
+                        CreateUser = (int)model.CreateUser
+                    };
 
-                    var detailModels = model.AsnDetail;
-                
-                    foreach (ArrivalNoticeDetailVm detailModel in detailModels)
+                    List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>();
+                    foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail)
                     {
                         if (string.IsNullOrEmpty(detailModel.SkuNo))
                         {
@@ -315,8 +307,7 @@
                             strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
                             continue;
                         }
-                        //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
-                        // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+
                         if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7")
                         {
                             if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
@@ -356,10 +347,14 @@
                                 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';";
-                        var com = new Common().GetRowCount(sqlCount);
+                        int com = Db.Queryable<BllArrivalNoticeDetail>()
+                            .Where(m => m.ASNNo == model.ASNNo 
+                            && m.SkuNo == detailModel.SkuNo 
+                            && m.LotNo == detailModel.LotNo 
+                            && m.Id != (int)detailModel.Id 
+                            && m.IsDel == "0").ToList().Count();
                         if (com > 0)
                         {
                             strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
@@ -371,26 +366,54 @@
                         }
                         // 璁$畻鍑烘�婚噾棰�
                         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,IsSampling,InspectStatus,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
-                        sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
-                        sqlDetailStr += $"'{detailModel.LotNo.Trim()}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
-                        sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','0','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
-                    }
+                        BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail()
+                        {
+                            ASNNo = model.ASNNo,
+                            SkuNo = detailModel.SkuNo,
+                            SkuName = detailModel.SkuName,
+                            Standard = detailModel.Standard,
+                            LotNo = detailModel.LotNo.Trim(),
+                            LotText = detailModel.LotText,
+                            Qty = (decimal)detailModel.Qty,
+                            PackagNo = detailModel.PackagNo,
+                            FactQty = 0,                        // 宸茬粍鏁伴噺
+                            CompleteQty = 0,                    // 瀹屾垚鏁伴噺
+                            Price = detailModel.Price,
+                            Money = detailModel.Money,
+                            IsBale = detailModel.IsBale,
+                            IsBelt = detailModel.IsBelt,
+                            SupplierLot = detailModel.SupplierLot,
+                            Status = "0",
+                            IsSampling = "0",
+                            InspectStatus = "0",
+                            UDF1 = detailModel.UDF1,
+                            UDF2 = detailModel.UDF2,
+                            UDF3 = detailModel.UDF3,
+                            UDF4 = detailModel.UDF4,
+                            UDF5 = detailModel.UDF5,
+                            CreateUser = (int)model.CreateUser,
+                        };
 
-                    if (sqlDetailStr == string.Empty)
+                        details.Add(detail);
+                    }
+                    
+                    // 鍒ゆ柇鏄惁瀛樺湪琚繃婊ゆ帀鐨勬槑缁�
+                    if (details.Count <= 0)
                     {
                         return strMessage;
                     }
+
                     Db.Ado.BeginTran();
 
-                    int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                    var rowDetailCount = 1;
-                    if (sqlDetailStr.Length > 0)
+                    var rowCount = Db.Insertable(ASNModel).ExecuteCommand();
+
+                    var rowDetailCount = 0;
+                    if (details.Count  > 0)
                     {
-                        rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
+                        rowDetailCount = Db.Insertable(details).ExecuteCommand();
                     }
                     Db.Ado.CommitTran();
+
                     if (rowCount > 0 && rowDetailCount > 0)
                     {
                         new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
@@ -427,29 +450,31 @@
                     //7 蹇呴』涓虹┖
                     var TypeLot = "1, 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
                     
-                    //if (model.Origin != "褰曞叆")
-                    //{
-                    //    strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
-                    //    return strMessage;
-                    //}
-                
-                    sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';";
-                    var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
+                    var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0");
+                    if (asnInfo == null) 
+                    {
+                        strMessage = "-1:鍗曞彿涓嶅瓨鍦紝鎴栧凡鍒犻櫎!;";
+                        return strMessage;
+                    }
                     if (asnInfo.Status != "0")
                     {
                         strMessage = "-1:鍗曟嵁鐘舵�佸彉鏇达紝涓嶅彲缂栬緫;";
                         return strMessage;
                     }
 
-                    sqlString = "UPDATE BllArrivalNotice SET ";
-                    sqlString += $"CustomerNo = '{model.CustomerNo}',CustomerName = '{model.CustomerName}',";
-                    sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}'";
+                    var dateTime = DateTime.Now;
+                    // 缂栬緫鎬诲崟
+                    asnInfo.CustomerNo = model.CustomerNo;
+                    asnInfo.CustomerName = model.CustomerName;
+                    asnInfo.LotNo = model.LotNo;
+                    asnInfo.LotText = model.LotText;
+                    asnInfo.UpdateTime = dateTime;
+                    asnInfo.UpdateUser = model.CreateUser;
 
                     var detailModels = model.AsnDetail;
                     sqlDetailStr += $"SELECT * FROM BllArrivalNoticeDetail WHERE ASNNo = '{model.ASNNo}' and isDel = '0';";
-                    var dbDetailModels = DataContext.Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sqlDetailStr);
+                    //var dbDetailModels = DataContext.Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sqlDetailStr);
+                    var dbDetailModels = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0").ToList();
 
                     sqlDetailStr = string.Empty;
                     // 澶勭悊宸插垹闄ょ殑鏄庣粏
@@ -457,13 +482,16 @@
                     {
                         if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0)
                         {
-                            sqlDetailStr += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                            sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                            sqlDetailStr += $"WHERE Id = {dbDetailModel.Id};";
+                            dbDetailModel.IsDel = "1";
+                            dbDetailModel.UpdateTime = dateTime;
+                            dbDetailModel.UpdateUser = model.CreateUser;
                         }
                     }
-                    string toDayTime = DateTime.Now.ToString("yyyyMMdd");
+
                     // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏
+                    string toDayTime = dateTime.ToString("yyyymmdd");
+                    List<BllArrivalNoticeDetail> addDetails = new List<BllArrivalNoticeDetail>();
+                    List<BllArrivalNoticeDetail> editDetails = new List<BllArrivalNoticeDetail>();
                     foreach (ArrivalNoticeDetailVm detailModel in detailModels)
                     {
                         if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -491,9 +519,7 @@
                         }
 
                         // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
-                        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';";
-                        var com = new Common().GetRowCount(sqlCount);
+                        var com =  dbDetailModels.Where(m => m.SkuNo == detailModel.SkuNo && m.LotNo == detailModel.LotNo && m.Id != detailModel.Id && m.IsDel == "0").Count();
                         if (com > 0)
                         {
                             strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
@@ -538,13 +564,33 @@
                             }
                             // 璁$畻鍑烘�婚噾棰�
                             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 += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
-                            sqlDetailStr += $"'{detailModel.LotNo.Trim()}','{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}');";
-                        
-                        
+
+                            BllArrivalNoticeDetail addModel = new BllArrivalNoticeDetail() 
+                            {
+                                ASNNo = model.ASNNo,
+                                SkuNo = detailModel.SkuNo,
+                                SkuName = detailModel.SkuName,
+                                Standard = detailModel.Standard,
+                                LotNo = detailModel.LotNo.Trim(),
+                                LotText = detailModel.LotText,
+                                Qty = (decimal)detailModel.Qty,
+                                PackagNo = detailModel.PackagNo,
+                                Price = detailModel.Price,
+                                Money = detailModel.Money,
+                                FactQty = 0,                        // 宸茬粍鏁伴噺
+                                CompleteQty = 0,                    // 瀹屾垚鏁伴噺
+                                IsBale = detailModel.IsBale,
+                                IsBelt = detailModel.IsBelt,
+                                SupplierLot = detailModel.SupplierLot,
+                                Status = "0",
+                                UDF1 = detailModel.UDF1,
+                                UDF2 = detailModel.UDF2,
+                                UDF3 = detailModel.UDF3,
+                                UDF4 = detailModel.UDF4,
+                                UDF5 = detailModel.UDF5,
+                                CreateUser=(int)model.CreateUser
+                            };
+                            addDetails.Add(addModel);                     
                         }
                         else
                         {
@@ -566,9 +612,10 @@
                             {
                                 continue;
                             }
+
+                            var dbDetail = dbDetailModels.First(m => m.Id == detailModel.Id);
                             if (TypeLot.Contains(model.Type))
                             {
-                                var dbDetail = dbDetailModels.First(m=>m.Id == detailModel.Id);
                                 if (!string.IsNullOrWhiteSpace(dbDetail.LotNo))
                                 {
                                     if (dbDetail.LotNo != detailModel.LotNo)
@@ -581,24 +628,39 @@
                             }
                             // 璁$畻鍑烘�婚噾棰�
                             detailModel.Money = detailModel.Price * detailModel.Qty;
-                            sqlDetailStr += $"UPDATE BllArrivalNoticeDetail SET ";
-                            sqlDetailStr += $"Qty = '{detailModel.Qty}',LotNo = '{detailModel.LotNo.Trim()}',Money='{detailModel.Money}', ";
-                            sqlDetailStr += $"LotText = '{detailModel.LotText}',SupplierLot = '{detailModel.SupplierLot}', ";
-                            sqlDetailStr += $"IsBale = '{detailModel.IsBale}',IsBelt = '{detailModel.IsBelt}', ";
-                            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};";
+
+                            dbDetail.Qty = (decimal)detailModel.Qty;
+                            dbDetail.LotNo = detailModel.LotNo;
+                            dbDetail.Money = detailModel.Money;
+                            dbDetail.LotText = detailModel.LotText;
+                            dbDetail.SupplierLot = detailModel.SupplierLot;
+                            dbDetail.IsBale = detailModel.IsBale;
+                            dbDetail.UDF1 = detailModel.UDF1;
+                            dbDetail.UDF2 = detailModel.UDF2;
+                            dbDetail.UDF3 = detailModel.UDF3;
+                            dbDetail.UDF4 = detailModel.UDF4;
+                            dbDetail.UDF5 = detailModel.UDF5;
+                            dbDetail.UpdateTime = dateTime;
+                            dbDetail.UpdateUser = model.CreateUser;
+
+                            editDetails.Add(dbDetail);
                         }
                     }
 
                     Db.Ado.BeginTran();
 
-                    int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                    Db.Updateable(dbDetailModels).ExecuteCommand();
+                    int rowCount = Db.Updateable(asnInfo).ExecuteCommand();
                     var rowDetailCount = 1;
-                    if (sqlDetailStr.Length > 0)
+                    if (addDetails.Count > 0) 
                     {
-                        rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
+                        rowDetailCount = Db.Insertable(addDetails).ExecuteCommand();
                     }
+                    if (editDetails.Count > 0) 
+                    {
+                        rowDetailCount += Db.Updateable(editDetails).ExecuteCommand();
+                    }
+
                     Db.Ado.CommitTran();
                     if (rowCount > 0 && rowDetailCount > 0)
                     {
@@ -622,9 +684,7 @@
         {
             try
             {
-                var sqlString = $"SELECT * FROM BllArrivalNotice WHERE ASNNo = '{model.ASNNo}' AND IsDel = 0 AND Status = '0';";
-                var asnModel = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
-
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Status == "0");
                 if (asnModel == null)
                 {
                     return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
@@ -636,42 +696,48 @@
                 }
 
                 // 鍒犻櫎鎬诲崟
-                sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                var editDateTime = DateTime.Now;
+                asnModel.IsDel = "1";
+                asnModel.UpdateTime = editDateTime;
+                asnModel.UpdateUser = model.CreateUser;
 
                 // 鍒犻櫎鏄庣粏鍗�
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel =="0").ToList();
+                foreach (BllArrivalNoticeDetail asnDetail in asnDetails) 
+                {
+                    asnDetail.IsDel = "1";
+                    asnDetail.UpdateTime = editDateTime;
+                    asnDetail.UpdateUser = model.CreateUser;
+                }
 
+                #region liudl Edit JC26鐗╂枡涓嶈创鍚楁棤闇�鍒犻櫎
                 //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
                 // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-                int notdel = 0;
-                if (model.Type == "1" || model.Type == "4")
-                {
-                    //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
-                    var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
+                //int notdel = 0;
+                //if (model.Type == "1" || model.Type == "4")
+                //{
+                //    //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
+                //    var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
 
-                    //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
-                    if (list == null)
-                    {
-                        return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
-                    }
+                //    //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
+                //    if (list == null)
+                //    {
+                //        return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
+                //    }
 
-                    // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
-                    sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
-                    notdel = 1;
-                }
+                //    // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
+                //    sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
+                //    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
+                //    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                //    notdel = 1;
+                //}
+                #endregion
+
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                if (rowCount < 2 + notdel)
-                {
-                    Db.RollbackTran();
-                    return "-1:鍒犻櫎澶辫触锛�";
-                }
+                //int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetails).ExecuteCommand();
+
                 Db.Ado.CommitTran();
                 new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
                 return "";
@@ -688,8 +754,7 @@
             string sqlString = string.Empty;
             try
             {
-                sqlString = $"SELECT * FROM BllArrivalNotice WHERE ASNNo = '{model.ASNNo}' AND IsDel = 0 AND Status = '0';";
-                var asnModel = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Status == "0");
 
                 if (asnModel == null)
                 {
@@ -702,28 +767,34 @@
 
                 }
 
-                sqlString = $"SELECT * FROM BllArrivalNoticeDetail WHERE ASNNo = '{model.ASNNo}' and Id <> {model.Id};";
-                var detailModel = Db.Ado.SqlQuery<ArrivalNoticeDetailVm>(sqlString);
+                var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Id == model.Id);
+                if (asnDetail == null) 
+                {
+                    return "-1:鏄庣粏鐘舵�佸凡鍙樻洿锛屼笉鍙垹闄�!";
+                }
 
+                var detailModel = Db.Queryable<BllArrivalNoticeDetail>()
+                    .Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Id != model.Id).ToList();
+                var editDateTime = DateTime.Now;
                 if (detailModel.Count <= 0)
                 {
-                    sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                    asnModel.IsDel = "1";
+                    asnModel.UpdateTime = editDateTime;
+                    asnModel.UpdateUser = model.CreateUser;
                 }
                 else
                 {
-                    sqlString = $"UPDATE BllArrivalNotice SET ";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                    asnModel.UpdateTime = editDateTime;
+                    asnModel.UpdateUser = model.CreateUser;
                 }
 
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE Id = '{model.Id}';";
+                asnDetail.IsDel = "0";
+                asnDetail.UpdateTime = editDateTime;
+                asnDetail.UpdateUser = model.CreateUser;
 
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetail).ExecuteCommand();
 
                 if (rowCount < 2)
                 {
@@ -731,8 +802,12 @@
                     return "-1:鍒犻櫎澶辫触锛�";
                 }
                 Db.Ado.CommitTran();
+
                 var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == model.Id);
-                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
+                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", 
+                    $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�", 
+                    Convert.ToInt32(model.CreateUser));
+
                 return "";
             }
             catch (Exception ex)
@@ -741,6 +816,7 @@
                 throw new Exception(ex.Message);
             }
         }
+
         //鍏抽棴鍏ュ簱鍗�
         public string CloseArrivalNotice(int id, int userId)
         {
@@ -751,29 +827,39 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁淇℃伅");
                 }
-                //if (notice.Status != "2")
-                //{
-                //    throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚");
-                //}
-                var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2" && m.Status != "3").ToList();
+
+                var palletBind = Db.Queryable<BllPalletBind>()
+                    .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo 
+                    && m.Status != "2" && m.Status != "3").ToList();
+
                 if (palletBind != null && palletBind.Count > 0)
                 {
                     throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�");
                 }
                 var comTime = DateTime.Now;
-                var sqlString = "";
 
                 // 鎬诲崟鍏冲崟
-                sqlString = $"UPDATE BllArrivalNotice SET Status = '3',";
-                sqlString += $"CompleteTime = GETDATE(),UpdateTime = GETDATE(),UpdateUser = '{userId}' ";
-                sqlString += $"WHERE Id = '{id}';";
-
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.Id == id);
+                if (asnModel != null) 
+                {
+                    asnModel.Status = "3";
+                    asnModel.CompleteTime = comTime;
+                    asnModel.UpdateTime = comTime;
+                    asnModel.UpdateUser = userId;
+                }
                 // 灏嗘湭瀹屾垚鐨勬槑缁嗘敼涓哄凡瀹屾垚
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET Status = '2',";
-                sqlString += $"CompleteTime = GETDATE(),UpdateTime = GETDATE(),UpdateUser = '{userId}' ";
-                sqlString += $"WHERE Id = '{id}' and Status <> '2';";
+                var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.Id == id && m.Status == "2").ToList();
+                foreach (BllArrivalNoticeDetail asnDetail in asnDetails) 
+                {
+                    asnDetail.Status = "2";
+                    asnDetail.CompleteTime = comTime;
+                    asnDetail.UpdateTime = comTime;
+                    asnDetail.UpdateUser = userId;
+                }
+
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetails).ExecuteCommand();
 
                 if (rowCount <= 0)
                 {
@@ -842,7 +928,7 @@
                         }
                         // 鍏ュ簱鎬昏〃淇℃伅
                         string asnNo = new Common().GetMaxNo("ASN");
-                        var asnModel = new BllArrivalNotice()
+                        var asnModel1 = new BllArrivalNotice()
                         {
                             ASNNo = asnNo,
                             Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
@@ -854,7 +940,7 @@
                             CreateUser = 0
                         };
                         // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
-                        Db.Insertable(asnModel).ExecuteCommand();
+                        Db.Insertable(asnModel1).ExecuteCommand();
                         //鍏ュ簱鍗曟槑缁�
                         var arrDetailModel = new BllArrivalNoticeDetail()
                         {

--
Gitblit v1.8.0