From bf1a9a818ffb721aea2709e9409fbb932b07e81d Mon Sep 17 00:00:00 2001 From: yyk <2336760928@qq.com> Date: 星期四, 18 七月 2024 15:55:54 +0800 Subject: [PATCH] Merge branch 'master' into yyk --- Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 596 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 337 insertions(+), 259 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 86fe9e7..93c6c16 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -8,17 +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; namespace WMS.BLL.BllAsnServer { @@ -34,114 +32,105 @@ #endregion #region 浜嬩欢鏂规硶 - public List<ArrivalNoticeDto> GetArrivalNoticeList(ArrivalNoticeVm model, out int count) + public async Task<List<ArrivalNoticeDto>> GetArrivalNoticeList(ArrivalNoticeVm model, RefAsync<int> count) { - string sqlString = string.Empty; - string sqlCount = string.Empty; - string sqlPub = string.Empty; - try - { - sqlCount += "SELECT DISTINCT COUNT(tb1.ID) FROM BllArrivalNotice AS tb1 "; - sqlString += "SELECT DISTINCT tb1.*,tb3.RealName as CreateUserName,tb4.RealName as UpdateUserName,tb5.RealName as CheckUserName FROM BllArrivalNotice AS tb1 "; - sqlPub += "LEFT JOIN BllArrivalNoticeDetail AS tb2 ON tb1.ASNNo = tb2.ASNNo "; - sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id "; - sqlPub += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id "; - sqlPub += "LEFT JOIN SysUserInfor AS tb5 ON tb1.CheckUser = tb5.Id "; - sqlPub += $"WHERE tb1.ASNNo LIKE '%{model.ASNNo}%' AND tb2.LotNo LIKE '%{model.LotNo}%' "; - sqlPub += $"AND tb2.SkuNo LIKE '%{model.SkuNo}%' AND tb2.SkuName LIKE '%{model.SkuName}%' "; - sqlPub += $"AND tb1.CustomerName LIKE '%{model.CustomerName}%' "; - if (!string.IsNullOrEmpty(model.OrderCode)) + var modelList = await Db.Queryable<BllArrivalNotice,BllArrivalNoticeDetail, SysUserInfor, SysUserInfor, + SysUserInfor>((tb1, tb2, tb3, tb4,tb5) => new JoinQueryInfos( + JoinType.Left, tb1.ASNNo == tb2.ASNNo, + JoinType.Left, tb1.CreateUser == tb3.Id, + JoinType.Left, tb1.UpdateUser == tb4.Id, + JoinType.Left, tb1.CheckUser == tb5.Id)) + .WhereIF(!string.IsNullOrWhiteSpace(model.ASNNo), tb1 => tb1.ASNNo.Contains(model.ASNNo)) + .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), (tb1,tb2) => tb2.LotNo.Contains(model.LotNo)) + .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), (tb1,tb2) => tb2.SkuNo.Contains(model.SkuNo)) + .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), (tb1,tb2) => tb2.SkuName.Contains(model.SkuName)) + .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName)) + .WhereIF(!string.IsNullOrWhiteSpace(model.OrderCode), tb1 => tb1.OrderCode.Contains(model.OrderCode)) + .WhereIF(!string.IsNullOrWhiteSpace(model.Status), tb1 => tb1.Status == model.Status) + .WhereIF(!string.IsNullOrWhiteSpace(model.Type), tb1 => tb1.Type == model.Type) + .WhereIF(!string.IsNullOrWhiteSpace(model.StartTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(model.StartTime)) + .WhereIF(!string.IsNullOrWhiteSpace(model.EndTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1)) + .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName)) + .Where(tb1 => tb1.IsDel == "0") + .OrderByDescending(tb1 => tb1.ASNNo) + .Distinct() + .Select((tb1, tb2, tb3, tb4, tb5) => new ArrivalNoticeDto() { - sqlPub += $"AND tb1.OrderCode LIKE '%{model.OrderCode}%' "; - } - if (!string.IsNullOrEmpty(model.Status)) - { - sqlPub += $"AND tb1.Status = '{model.Status}' "; - } - if (!string.IsNullOrEmpty(model.Type)) - { - if (model.Type == "3") - { - sqlPub += $"AND tb1.Type = '{model.Type}' "; - } - else - { - sqlPub += $"AND tb1.Type = '{model.Type}' AND tb1.Type != '3' "; - } - } - else - { - sqlPub += " AND tb1.Type != '3'"; + Id = tb1.Id, + ASNNo = tb1.ASNNo, + Type = tb1.Type, + Status = tb1.Status, + Origin = tb1.Origin, + CustomerNo = tb1.CustomerNo, + CustomerName = tb1.CustomerName, + LotNo = tb1.LotNo, + LotText = tb1.LotText, + CheckTime = ((DateTime)tb1.CheckTime).ToString("yyyy-MM-dd HH:mm:ss"), + CheckUserName = tb5.RealName, + SupplierLot = tb1.SupplierLot, + Demo = tb1.Demo, + OrderCode = tb1.OrderCode, + CompleteTime = tb1.CompleteTime, + CreateTime = tb1.CreateTime, + CreateUserName = tb3.RealName, + UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"), + UpdateUserName = tb4.RealName - } - if (!string.IsNullOrEmpty(model.StartTime)) - { - sqlPub += $"AND tb1.CreateTime >= '{model.StartTime}' "; - } - if (!string.IsNullOrEmpty(model.EndTime)) - { - sqlPub += $"AND tb1.CreateTime <= '{model.EndTime}' "; - } - sqlCount += sqlPub + "AND tb1.IsDel = '0' "; - sqlPub += "AND tb1.IsDel = '0' order by tb1.ASNNo desc "; - if (model.Page == 0) - { - model.Page = 1; - } - sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;"; + }).ToPageListAsync(model.Page, model.Limit, count); - var com = new Common(); - count = com.GetRowCount(sqlCount); - - var modelList = Db.Ado.SqlQuery<ArrivalNoticeDto>(sqlString); - - return modelList; - } - catch (Exception ex) - { - throw ex; - } + return modelList; } - public List<ArrivalNoticeDetailDto> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, out int count) + public async Task<List<ArrivalNoticeDetailDto>> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, RefAsync<int> count) { - string sqlString = string.Empty; - string sqlCount = string.Empty; - int rowCount = 1; - try - { - if (model.Page == 0) - { - model.Page = 1; - } - sqlCount += $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' and isdel = '0';"; - var com = new Common(); - count = com.GetRowCount(sqlCount); - if (count != 0) - { - rowCount = count; - } + var item = Expressionable.Create<BllArrivalNoticeDetail>() + .AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo == model.ASNNo) + .AndIF(true, it => it.IsDel == "0") + .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� - sqlString += "SELECT DISTINCT tb1.*,tb2.Type as AsnType,tb2.Status as AsnStatus,tb3.RealName as CreateUserName, "; - sqlString += "tb4.RealName as UpdateUserName,isnull(tb6.UnitName,tb5.UnitNo) as UnitName,tb7.PackagName,tb5.IsPasteCode "; - sqlString += "FROM BllArrivalNoticeDetail AS tb1 "; - sqlString += "LEFT JOIN BllArrivalNotice AS tb2 ON tb1.ASNNo = tb2.ASNNo "; - sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id "; - sqlString += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id "; - sqlString += "LEFT JOIN SysMaterials AS tb5 on tb1.SkuNo = tb5.SkuNo "; - sqlString += "LEFT JOIN SysUnit AS tb6 on tb5.UnitNo = tb6.UnitNo "; - sqlString += "LEFT JOIN SysPackag AS tb7 on tb1.PackagNo = tb7.PackagNo "; - sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' order by tb1.SkuNo desc "; - sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;"; + var modelList = await Db.Queryable<BllArrivalNoticeDetail>().Where(item) + .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo) + .LeftJoin<SysUserInfor>((tb1, tb2,tb3) => tb1.CreateUser == tb3.Id) + .LeftJoin<SysUserInfor>((tb1,tb2,tb3,tb4) => tb1.UpdateUser == tb4.Id) + .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo) + .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo) + .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo) + .Select((tb1, tb2, tb3, tb4, tb5,tb6, tb7) => new ArrivalNoticeDetailDto() + { + Id = tb1.Id, + ASNNo = tb1.ASNNo, + SkuNo = tb1.SkuNo, + SkuName = tb1.SkuName, + Standard = tb1.Standard, + LotNo = tb1.LotNo, + LotText = tb1.LotText, + Qty = tb1.Qty, + FactQty = tb1.FactQty, + CompleteQty = tb1.CompleteQty, + IsSampling = tb1.IsSampling, + InspectStatus = tb1.InspectStatus, + PackagNo = tb1.PackagNo, + PackagName = tb7.PackagName, + UnitName = tb6.UnitName, + IsBale = tb1.IsBale, + IsBelt = tb1.IsBelt, + SupplierLot = tb1.SupplierLot, + Status = tb1.Status, + AsnType = tb2.Type, + AsnStatus = tb2.Status, + UDF1 = tb1.UDF1, + UDF2 = tb1.UDF2, + UDF3 = tb1.UDF3, + UDF4 = tb1.UDF4, + UDF5 = tb1.UDF5, + CompleteTime = tb1.CompleteTime, + CreateTime = tb1.CreateTime, + CreateUserName = tb3.RealName, + UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"), + UpdateUserName = tb4.RealName + }).ToPageListAsync(model.Page, model.Limit, count); - var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString); - - return modelList; - } - catch (Exception ex) - { - throw ex; - } + return modelList; } //鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲� @@ -173,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; } @@ -237,8 +209,6 @@ .Includes(x => x.UnitInfo) .Includes(x => x.PackagInfo) .ToList(); - - return data.Select(m => new MaterialsDto() { @@ -274,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 { @@ -299,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)) { @@ -323,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)) @@ -364,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:鐗╂枡鍜屾壒娆″彿閲嶅;"; @@ -379,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)); @@ -435,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; // 澶勭悊宸插垹闄ょ殑鏄庣粏 @@ -465,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)) @@ -499,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:鐗╂枡鍜屾壒娆″彿閲嶅;"; @@ -546,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 { @@ -574,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) @@ -589,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) { @@ -630,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:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!"; @@ -644,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 ""; @@ -696,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) { @@ -710,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) { @@ -739,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) @@ -749,6 +816,7 @@ throw new Exception(ex.Message); } } + //鍏抽棴鍏ュ簱鍗� public string CloseArrivalNotice(int id, int userId) { @@ -759,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) { @@ -850,7 +928,7 @@ } // 鍏ュ簱鎬昏〃淇℃伅 string asnNo = new Common().GetMaxNo("ASN"); - var asnModel = new BllArrivalNotice() + var asnModel1 = new BllArrivalNotice() { ASNNo = asnNo, Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛� @@ -862,7 +940,7 @@ CreateUser = 0 }; // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅 - Db.Insertable(asnModel).ExecuteCommand(); + Db.Insertable(asnModel1).ExecuteCommand(); //鍏ュ簱鍗曟槑缁� var arrDetailModel = new BllArrivalNoticeDetail() { -- Gitblit v1.8.0