using ICSSoft.Common; using ICSSoft.Entity; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ICSSoft.DataProject { public class ICSLibrary { private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); private static string connString = System.Configuration.ConfigurationManager.AppSettings["ConnStr"]; private static string ERPDB = System.Configuration.ConfigurationManager.AppSettings["ERPDB"]; DataTable table = null; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); string sql = string.Empty; VerificationMethod verification = new VerificationMethod();//验证公共方法 public object LibraryGet(ICSLibraryModel JsonData) { conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; string jsonInfo; #region sql try { bool isBool= verification.isStockZero(JsonData.LotNo, JsonData.WorkPoint); if (isBool==true) { sql = @"select f.ContainerCODE, f.ContainerName, d.InvCode, d.InvName, d.InvStd, a.Quantity, d.InvUnit, d.AmountUnit, i.WarehouseCode, i.WarehouseName, q.LocationCode, q.LocationName, c.ProjectCode, c.BatchCode, c.Version, c.Brand, y.TransCode,--来源单据 y.TransSequence,--来源行号 a.LotNo, c.cFree1, c.cFree2, c.cFree3, c.cFree4, c.cFree5, c.cFree6, c.cFree7, c.cFree8, c.cFree9, c.cFree10 from ICSWareHouseLotInfo a left join ICSInventoryLot b on a.LotNo=b.LotNo left join ICSExtension c on b.ExtensionID=c.id left join ICSInventory d on b.InvCode=d.InvCode left join ICSContainerLot e on e.LotNo=a.LotNo left join ICSContainer f on f.ContainerID= e.ID left join ICSLocation q on q.LocationCode=a.LocationCode left join ICSWarehouse i on i.ID=q.WHID left join ICSInventoryLotDetail y on y.LotNo=a.LotNo where a.LotNo='{0}' and a.WorkPoint='{1}'"; sql = string.Format(sql, JsonData.LotNo, JsonData.WorkPoint); table = DBHelper.SQlReturnData(sql, cmd); if (table.Rows.Count > 0) { jsonInfo = JsonConvert.SerializeObject(table); var Library = JsonConvert.DeserializeObject(jsonInfo); return Library; } else { throw new Exception("暂无数据!"); } } return null; } catch (Exception ex) { cmd.Transaction.Rollback(); log.Error(ex.Message); throw new Exception(ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } #endregion } public object LibraryUpdate(ICSLibraryModel JsonData) { conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; //string jsonInfo; string sqlLog = string.Empty; ///修改库存表的库位 sql = @"update ICSWareHouseLotInfo set WarehouseCode='{0}' ,LocationCode ='{1}' where LotNo='{2}' and WorkPoint='{3}'"; sql = string.Format(sql,JsonData.WarehouseCode,JsonData.LocationCode,JsonData.LotNo,JsonData.WorkPoint); cmd.CommandText = sql; int PurchaseList= cmd.ExecuteNonQuery();//返回数量 ///添加日志 if (PurchaseList > 0) { sqlLog = @" INSERT INTO [dbo].[ICSWareHouseLotInfoLog] ([ID] ,[TransCode] ,[TransSequence] ,[LotNo] ,[InvCode] ,[FromWarehouseCode] ,[FromLocationCode] ,[ToWarehouseCode] ,[ToLocationCode] ,[Quantity] ,[Memo] ,[Lock] ,[TransType] ,[BusinessCode] ,[ERPID] ,[ERPDetailID] ,[ERPCode] ,[ERPSequence] ,[MUSER] ,[MUSERName] ,[MTIME] ,[WorkPoint] ,[EATTRIBUTE1]) (select newid(),'{0}','{1}','{2}',a.InvCode ,' ', ' ','{3}','{4}',a.Quantity,' ','0','7','14',' ',' ',' ',' ','{5}',e.F_RealName,'{6}','{7}',' ' from ICSWareHouseLotInfo a--主表 left join Sys_SRM_User e on e.F_Account='{5}' and e.F_Location='{7}' where a.LotNo='{2}' and a. WorkPoint='{7}' )"; sqlLog = string.Format(sqlLog, JsonData.TransCode, JsonData.TransSequence, JsonData.LotNo, JsonData.WarehouseCode,JsonData.LocationCode, JsonData.User, DateTime.Now, JsonData.WorkPoint); cmd.CommandText = sqlLog; int Purchase = cmd.ExecuteNonQuery();//返回数量 if (Purchase>0) { cmd.Transaction.Commit(); } else { cmd.Transaction.Rollback(); } } return null; } } }