using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMFrameWork.Data; using QMAPP.FJC.Entity.Stocktaking; using QMAPP.FJC.Entity.ProcessParameter; using System.Data; using QMAPP.FJC.Web.Models.Stocktaking; using System.Collections; using QMFrameWork.Log; using QMAPP.DAL; using QMAPP.Entity; using QMAPP.FJC.Entity; using QMAPP.FJC.Entity.Operation; namespace QMAPP.FJC.DAL.Stocktaking { /// /// 盘点记录信息查询 /// 模块编号:M14-1 /// 作 者:崔法宝 /// 编写日期:2017年09月13日 /// public class StocktakingDAL : BaseDAL { #region 获取列表(手持) public List GetAllList(string planid) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT S.MATERIAL_CODE AS [MaterialCode] "); sql.AppendLine(" ,M.MATERIAL_NAME [MaterialName] "); sql.AppendLine(" ,SUM(S.QTY) AS [Count] "); sql.AppendLine(" FROM T_PP_COUNTSHEET AS S "); sql.AppendLine(" LEFT JOIN T_MD_MATERIAL AS M "); sql.AppendLine(" ON S.MATERIAL_CODE=M.MATERIAL_CODE "); sql.AppendLine(" WHERE PLANID=@planid "); sql.AppendLine(" GROUP BY S.MATERIAL_CODE,M.MATERIAL_NAME"); parameters.Add(new DataParameter("planid", planid)); using (IDataSession session = AppDataFactory.CreateMainSession()) { return session.GetList(sql.ToString(), parameters.ToArray()).ToList(); } } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "盘点计划信息数据层-获取列表" }); throw; } } //#region 获取子页面详细列表 ///// ///// 获取子页面详细列表 ///// ///// 条件 ///// 数据页 ///// 数据页 //public DataPage GetSubList(CountingdetailInfo condition, DataPage page) //{ // string sql = null; // List parameters = new List(); // try // { // sql = this.GetSubQuerySql(condition, ref parameters); // //分页关键字段及排序 // page.KeyName = "PID"; // page.SortExpression = "UPDATEDATE DESC"; // using (IDataSession session = AppDataFactory.CreateMainSession()) // { // page = session.GetDataPage(sql, parameters.ToArray(), page); // } // return page; // } // catch (Exception ex) // { // throw ex; // } //} //#endregion //#region 获取详细信息根据PID(点击添加的时候) ///// ///// 获取详细信息根据PID ///// ///// 条件 ///// 数据页 ///// 数据页 //public DataTable GetModel(string PID) //{ // DataTable table = null; // StringBuilder sqlBuilder = new StringBuilder(); // List parameters = new List(); // try // { // sqlBuilder.Append(" select * from T_PP_COUNTINGPLAN where PID='" + PID + "'"); // using (IDataSession session = AppDataFactory.CreateMainSession()) // { // table = session.GetTable(sqlBuilder.ToString(), parameters.ToArray()); // } // return table; // } // catch (Exception ex) // { // throw ex; // } //} //#endregion //#region 获取详细信息根据PLANID ///// ///// 获取详细信息根据PLANID ///// ///// 条件 ///// 数据页 ///// 数据页 //public DataTable GetSubModel(string PLANID) //{ // DataTable table = null; // StringBuilder sqlBuilder = new StringBuilder(); // List parameters = new List(); // try // { // sqlBuilder.Append(" select * from T_PP_COUNTINGDETAIL where PLANID='" + PLANID + "'"); // using (IDataSession session = AppDataFactory.CreateMainSession()) // { // table = session.GetTable(sqlBuilder.ToString(), parameters.ToArray()); // } // return table; // } // catch (Exception ex) // { // throw ex; // } //} //#endregion #region 返回登记数量 /// /// 返回登记数量 /// /// /// public string ReturnREGISTNUMBER(string PID) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append(@"select count(1) as num from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID inner join dbo.T_AW_PRODUCT Pt on D.MATERIAL_Code=Pt.MATERIAL_Code "); sqlBuilder.Append(" where P.PID='" + PID + "' "); return sqlBuilder.ToString(); } #endregion #region 返回实际数量 /// /// 返回实际数量 /// /// /// public string ReturnACTUALNUMBER(string PID) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append(@"select count(1) from T_PP_COUNTSHEET "); sqlBuilder.Append("where PLANID='" + PID + "'"); return sqlBuilder.ToString(); } #endregion #region 盘点比对处理 /// /// 盘点比对处理 /// /// /// public int detailCompareResult(string PID, string CREATEUSER) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder2 = new StringBuilder(); StringBuilder sqlBuilder3 = new StringBuilder(); StringBuilder sqlBuilder4 = new StringBuilder(); StringBuilder sqlBuilder5 = new StringBuilder(); StringBuilder sqlBuilder6 = new StringBuilder(); StringBuilder sqlBuilder7 = new StringBuilder(); StringBuilder sqlBuilder8 = new StringBuilder(); StringBuilder sqlBuilder9 = new StringBuilder(); StringBuilder sqlBuilder10 = new StringBuilder(); object result = null; object result2 = null; object result3 = null; List parameters = new List(); string[] list = PID.Split(":".ToCharArray()); int resultData = 0; foreach (string id in list) { sqlBuilder.Append(@" select sum(PT.CAPACITY-PT.USingCount) AS num from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID INNER join dbo.T_AW_PRODUCT Pt on D.MATERIAL_Code=Pt.MATERIAL_Code "); sqlBuilder.Append(@" where P.PID='" + id + "'"); sqlBuilder2.Append(@" select sum(QTY) from T_PP_COUNTSHEET "); sqlBuilder2.Append("where PLANID='" + id + "' "); using (IDataSession session = AppDataFactory.CreateMainSession()) { result = session.ExecuteSqlScalar(sqlBuilder.ToString(), parameters.ToArray()); result2 = session.ExecuteSqlScalar(sqlBuilder2.ToString(), parameters.ToArray()); if (string.IsNullOrEmpty(result.ToString())) { result = "0"; } if (string.IsNullOrEmpty(result2.ToString())) { result2 = "0"; } sqlBuilder3.Append(@" update T_PP_COUNTINGPLAN set REGISTNUMBER='" + result.ToString() + "' ,UPDATEdATE='" + DateTime.Now.ToString() + "',PLAN_STATE='2', ACTUALNUMBER='" + result2.ToString() + "' where PID='" + id + "'"); session.ExecuteSql(sqlBuilder3.ToString(), parameters.ToArray()); int QTY = 0; //int COMPARERESULT = 0; List listresult = new List(); //删除对比结果表数据 sqlBuilder9.Append(@" delete from T_PP_COUNTRESULT where PLANID='" + id + "'"); session.ExecuteSql(sqlBuilder9.ToString(), parameters.ToArray()); if (Convert.ToInt32(result) - Convert.ToInt32(result2) < 0) { sqlBuilder4.Append(@" update T_PP_COUNTINGPLAN set ERROWSTATUS='异常' where PID='" + id + "' "); session.ExecuteSqlScalar(sqlBuilder4.ToString(), parameters.ToArray()); } if (Convert.ToInt32(result) - Convert.ToInt32(result2) > 0) { sqlBuilder4.Append(@" update T_PP_COUNTINGPLAN set ERROWSTATUS='异常' where PID='" + id + "' "); session.ExecuteSqlScalar(sqlBuilder4.ToString(), parameters.ToArray()); } if (Convert.ToInt32(result) - Convert.ToInt32(result2) == 0) { sqlBuilder4.Append(@" update T_PP_COUNTINGPLAN set ERROWSTATUS='异常' where PID='" + id + "' "); session.ExecuteSqlScalar(sqlBuilder4.ToString(), parameters.ToArray()); } //处理计划表没有数据 sqlBuilder5.Append(@"select sum(PT.CAPACITY-PT.USingCount) AS num, pt.MATERIAL_Code, D.MATERIAL_TYPE_CODE, D.MATERIAL_CODE from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID INNER join dbo.T_AW_PRODUCT Pt on D.MATERIAL_Code=Pt.MATERIAL_Code "); sqlBuilder5.Append("where P.PID='" + id + "' and D.MATERIAL_cODE "); sqlBuilder5.Append(@" not in ( select C.MATERIAL_CODE from T_PP_COUNTSHEET C where C.PlanID='" + id + "'"); sqlBuilder5.Append(@" ) GROUP BY D.MATERIAL_TYPE_CODE,D.MATERIAL_CODE, pt.MATERIAL_Code "); IList listresult1 = session.GetList(sqlBuilder5.ToString(), parameters.ToArray()); foreach (CountingdetailInfo item in listresult1) { //item.COMPARERESULT = "实物亏"; item.COMPARERESULT = "0"; //if (Convert.ToInt32(item.num) < 0) //{ // item.num = item.num.Substring(1); // item.COMPARERESULT = "0"; //} //else //{ // item.COMPARERESULT = "1"; //} listresult.Add(item); } //处理计划实际相同数据 sqlBuilder6.Append(@" select C.MATERIAL_CODE, isnull(C.QTY-AA.num,0) AS num , C.MATERIAL_TYPE_CODE, C.MATERIAL_SN from T_PP_COUNTSHEET C left join ( select sum(PT.CAPACITY-PT.USingCount) AS num, pt.MATERIAL_Code from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID INNER join dbo.T_AW_PRODUCT Pt on D.MATERIAL_Code=Pt.MATERIAL_Code where P.PID='" + id + "' "); sqlBuilder6.Append(@" GROUP BY D.MATERIAL_TYPE_CODE,D.MATERIAL_CODE, pt.MATERIAL_Code ) AA on C.MATERIAL_CODE=AA.MATERIAL_Code where C.MATERIAL_CODE in ( select D.MATERIAL_Code from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID "); sqlBuilder6.Append(@" where P.PID='" + id + "' "); sqlBuilder6.Append(@" ) and C.PlanID='" + id + "' "); IList listresult2 = session.GetList(sqlBuilder6.ToString(), parameters.ToArray()); foreach (CountingdetailInfo item in listresult2) { //item.COMPARERESULT = "实物赢"; // item.COMPARERESULT = "1"; if (item.num != "0") { if (Convert.ToInt32(item.num) < 0) { item.num = item.num.Substring(1); item.COMPARERESULT = "0"; } else { item.COMPARERESULT = "1"; } listresult.Add(item); } } // 处理实际表没有数据 sqlBuilder8.Append(@"select C.MATERIAL_CODE, C.QTY AS num , C.MATERIAL_TYPE_CODE, C.MATERIAL_SN from T_PP_COUNTSHEET C where C.MATERIAL_CODE not in ( select pt.MATERIAL_Code from T_PP_COUNTINGPLAN P inner join T_PP_COUNTINGDETAIL D ON p.PID= D.PLANID INNER join dbo.T_AW_PRODUCT Pt on D.MATERIAL_Code=Pt.MATERIAL_Code "); sqlBuilder8.Append("where P.PID='" + id + "' "); sqlBuilder8.Append(@"GROUP BY D.MATERIAL_TYPE_CODE,D.MATERIAL_CODE, pt.MATERIAL_Code ) and C.PLanID='" + id + "' "); IList listresult3 = session.GetList(sqlBuilder8.ToString(), parameters.ToArray()); foreach (CountingdetailInfo item in listresult3) { int num1 = Convert.ToInt32(item.num); if (num1 != 0) { if (num1 > 0) { // item.COMPARERESULT = "实物赢"; item.COMPARERESULT = "1"; } else { // item.COMPARERESULT = "实物亏"; item.COMPARERESULT = "0"; } listresult.Add(item); } } //往数据库中插入数据 foreach (CountingdetailInfo item in listresult) { sqlBuilder7 = new StringBuilder(); sqlBuilder7.Append("insert into T_PP_COUNTRESULT "); sqlBuilder7.Append(" ( "); sqlBuilder7.Append(" PID,PLANID,PLAN_NO,MATERIAL_TYPE_CODE,"); sqlBuilder7.Append(" MATERIAL_CODE,MATERIAL_SN,QTY,COMPARERESULT,"); sqlBuilder7.Append(" CREATEUSER,CREATEDATE"); sqlBuilder7.Append(" ) "); sqlBuilder7.Append(" values"); sqlBuilder7.Append(" ("); sqlBuilder7.Append(" '" + Guid.NewGuid().ToString() + "',"); sqlBuilder7.Append(" '" + id + "',"); sqlBuilder7.Append(" '" + item.PLAN_NO + "',"); sqlBuilder7.Append(" '" + item.MATERIAL_TYPE_CODE + "',"); sqlBuilder7.Append(" '" + item.MATERIAL_CODE + "',"); //if (item.COMPARERESULT == "0") //{ // sqlBuilder7.Append(" '" + "''" + "',"); //} //else //{ sqlBuilder7.Append(" '" + item.MATERIAL_SN + "',"); // } sqlBuilder7.Append("" + item.num + ","); sqlBuilder7.Append("" + Convert.ToInt32(item.COMPARERESULT) + ","); sqlBuilder7.Append(" '" + CREATEUSER + "',"); sqlBuilder7.Append("'" + Convert.ToDateTime(DateTime.Now.ToString()) + "'"); sqlBuilder7.Append(" )"); session.ExecuteSql(sqlBuilder7.ToString(), parameters.ToArray()); } if (listresult.Count == 0)//如果没有差异 { sqlBuilder10.Append(@" update T_PP_COUNTINGPLAN set ERROWSTATUS='正常' where PID='" + id + "' "); session.ExecuteSqlScalar(sqlBuilder10.ToString(), parameters.ToArray()); } else { sqlBuilder10.Append(@" update T_PP_COUNTINGPLAN set ERROWSTATUS='异常' where PID='" + id + "' "); session.ExecuteSqlScalar(sqlBuilder10.ToString(), parameters.ToArray()); } } resultData++; } return resultData; } #endregion #endregion #region 获取实体T_PP_COUNTINGPLAN public Countingplaninfo Get(Countingplaninfo condition) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_COUNTINGPLAN WHERE '1'='1'"; if (string.IsNullOrEmpty(condition.PID) == false) { sql += " AND PID = @PID"; parameters.Add(new DataParameter("PID", condition.PID)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql, session); //获取信息 condition = session.Get(sqlChange, parameters.ToArray()); } return condition; } catch (Exception ex) { RecordExceptionLog(ex, "用户设备数据层-获取信息"); throw ex; } } #endregion #region 获取列表 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetList(Countingplaninfo condition, DataPage page) { string sql = null; List parameters = new List(); try { sql = this.GetQuerySql(condition, ref parameters); //分页关键字段及排序 page.KeyName = "PID"; if (string.IsNullOrEmpty(page.SortExpression)) { page.SortExpression = "UPDATEDATE DESC"; } using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage(sql, parameters.ToArray(), page); } return page; } catch (Exception ex) { throw ex; } } #endregion #region 获取列表(手持) /// /// 获取列表(手持) /// /// 条件 /// 全部集合 public List GetAllList(Countingplaninfo condition) { List list = new List(); string sql = null; List parameters = new List(); try { sql = this.GetQuerySql(condition, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { list = session.GetList(sql, parameters.ToArray()).ToList(); } return list; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "盘点计划信息数据层-获取列表" }); throw; } } #endregion #region 获取查询语句T_PP_COUNTINGPLAN主界面 /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetQuerySql(Countingplaninfo condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT P.PID "); sqlBuilder.AppendLine(" ,P.ERROWSTATUS "); sqlBuilder.AppendLine(" ,P.FACTORY_CODE "); sqlBuilder.AppendLine(" ,P.PLAN_NO "); sqlBuilder.AppendLine(" ,P.PLAN_STATE "); sqlBuilder.AppendLine(" ,P.REMARK "); sqlBuilder.AppendLine(" ,P.PLAN_DATE "); sqlBuilder.AppendLine(" ,P.REGISTNUMBER "); sqlBuilder.AppendLine(" ,P.ACTUALNUMBER "); sqlBuilder.AppendLine(" ,P.COUNTTYPE "); sqlBuilder.AppendLine(" ,P.CREATEUSER "); sqlBuilder.AppendLine(" ,P.CREATEDATE "); sqlBuilder.AppendLine(" ,P.UPDATEUSER "); sqlBuilder.AppendLine(" ,P.UPDATEDATE "); sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME "); sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME "); sqlBuilder.AppendLine(" FROM T_PP_COUNTINGPLAN P "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=P.CREATEUSER "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=P.UPDATEUSER "); //sqlBuilder.Append(" select PID,ERROWSTATUS,FACTORY_CODE,PLAN_NO,PLAN_STATE,REMARK,substring(convert(varchar(20),PLAN_DATE,23),0,11)as PLAN_DATE, "); //sqlBuilder.Append(" REGISTNUMBER,ACTUALNUMBER,CREATEUSER,CREATEDATE,UPDATEUSER,UPDATEDATE,COUNTTYPE "); //sqlBuilder.Append(" from T_PP_COUNTINGPLAN "); if (!string.IsNullOrEmpty(condition.PLAN_NO)) { whereBuilder.Append(" AND P.PLAN_NO ='" + condition.PLAN_NO + "'"); } if (!string.IsNullOrEmpty(condition.PLAN_STATE)) { whereBuilder.Append(" AND P.PLAN_STATE ='" + condition.PLAN_STATE + "'"); } //计划时间 if (condition.PLANTIMESTART != DateTime.MinValue) { whereBuilder.Append(" AND P.PLAN_DATE >= @PLANTIMESTART"); parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART }); } if (condition.PLANTIMEEND != DateTime.MinValue) { whereBuilder.Append(" AND P.PLAN_DATE <= @PLANTIMEEND"); parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE 1=1 " + whereBuilder.ToString()); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 获取查询语句T_PP_COUNTINGDETAIL /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetSubQuerySql(CountingdetailInfo condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT P.PID "); sqlBuilder.AppendLine(" ,P.PLANID "); sqlBuilder.AppendLine(" ,P.MATERIAL_TYPE_CODE "); sqlBuilder.AppendLine(" ,P.MATERIAL_CODE "); sqlBuilder.AppendLine(" ,P.CREATEUSER "); sqlBuilder.AppendLine(" ,P.CREATEDATE "); sqlBuilder.AppendLine(" ,P.UPDATEUSER "); sqlBuilder.AppendLine(" ,P.UPDATEDATE "); sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME "); sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME "); sqlBuilder.AppendLine(" FROM T_PP_COUNTINGDETAIL P "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=P.CREATEUSER "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=P.UPDATEUSER "); if (!string.IsNullOrEmpty(condition.PLANID)) { whereBuilder.Append(" AND PLANID =@PLANID"); parameters.Add(new DataParameter { ParameterName = "PLANID", DataType = DbType.String, Value = condition.PLANID }); } if (!string.IsNullOrEmpty(condition.MATERIAL_CODE)) { whereBuilder.Append(" AND MATERIAL_CODE =@MATERIAL_CODE"); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE }); } if (!string.IsNullOrEmpty(condition.MATERIAL_TYPE_CODE)) { whereBuilder.Append(" AND MATERIAL_TYPE_CODE =@MATERIAL_TYPE_CODE"); parameters.Add(new DataParameter { ParameterName = "MATERIAL_TYPE_CODE", DataType = DbType.String, Value = condition.MATERIAL_TYPE_CODE }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE 1=1 " + whereBuilder.ToString()); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 插入信息(T_PP_COUNTINGPLAN) /// /// 插入信息(T_PP_COUNTINGPLAN) /// /// 信息 /// 插入行数 public int Insert(Countingplaninfo model) { object count = 0; StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //sqlBuilder.Append(" insert T_PP_COUNTINGPLAN( PID,FACTORY_CODE,PLAN_NO,PLAN_STATE,REMARK,PLAN_DATE, "); //sqlBuilder.Append(" REGISTNUMBER,ACTUALNUMBER,CREATEUSER,CREATEDATE,UPDATEUSER,UPDATEDATE,ERROWSTATUS ) "); //sqlBuilder.Append(" values ( "); //sqlBuilder.Append("'" + model.PID + "',"); //sqlBuilder.Append("'" + model.FACTORY_CODE + "',"); //sqlBuilder.Append("'" + model.PLAN_NO + "',"); //sqlBuilder.Append("'" + model.PLAN_STATE + "',"); //sqlBuilder.Append("'" + model.REMARK + "',"); //sqlBuilder.Append("'" + Convert.ToDateTime(model.PLAN_DATE) + "',"); //sqlBuilder.Append("" + Convert.ToInt32(model.REGISTNUMBER) + ","); //sqlBuilder.Append("" + Convert.ToInt32(model.ACTUALNUMBER) + ","); //sqlBuilder.Append("'" + model.CREATEUSER + "',"); //sqlBuilder.Append("'" + Convert.ToDateTime(model.CREATEDATE) + "',"); //sqlBuilder.Append("'" + model.UPDATEUSER + "',"); //sqlBuilder.Append("'" + Convert.ToDateTime(model.UPDATEDATE) + "',"); //sqlBuilder.Append("'正常'"); //sqlBuilder.Append(" ) "); //插入基本信息 //count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray()); count = session.Insert(model); } return Convert.ToInt32(count); } catch (Exception ex) { throw ex; } } #endregion #region 插入信息 T_PP_COUNTINGDETAIL表 /// /// 插入信息 T_PP_COUNTINGDETAIL表 /// /// /// public int InsertStocktakingPlan(List list) { ImportMessage em = new ImportMessage(); int count = 0; List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //设置祖先对象数据会话 session.OpenTs(); foreach (CountingdetailInfo info in list) { count = session.Insert(info); } session.CommitTs(); } } catch (Exception ex) { throw ex; } return count; } #endregion #region 获取列表(物料信息) /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetMaterialGridList(CountingdetailInfo condition, DataPage page) { string sql = null; List parameters = new List(); try { #region 排序 //分页关键字段及排序 page.KeyName = "PID"; page.SortExpression = "UPDATEDATE DESC"; #endregion sql = this.GetSubQuerySql(condition, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage(sql, parameters.ToArray(), page); } return page; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "设备信息数据层-获取列表" }); throw; } } #endregion #region 修改更新信息(单表(T_PP_COUNTINGPLAN)) /// /// 修改信息(单表) /// /// 信息 /// 修改行数 public int Update(Countingplaninfo model) { object count = 0; StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { sqlBuilder.Append(" update T_PP_COUNTINGPLAN set "); sqlBuilder.Append("FACTORY_CODE='" + model.FACTORY_CODE + "',"); //if (model.PLAN_STATE.Trim() == "0") //{ // model.PLAN_STATE = "1"; //} sqlBuilder.Append("PLAN_STATE='" + model.PLAN_STATE + "',"); sqlBuilder.Append("COUNTTYPE='" + model.COUNTTYPE + "',"); sqlBuilder.Append("REMARK='" + model.REMARK + "',"); sqlBuilder.Append("PLAN_DATE='" + Convert.ToDateTime(model.PLAN_DATE) + "',"); sqlBuilder.Append("UPDATEUSER='" + model.UPDATEUSER + "',"); sqlBuilder.Append("UPDATEDATE='" + Convert.ToDateTime(model.UPDATEDATE) + "'"); sqlBuilder.Append(" where PID='" + model.PID + "'"); //插入基本信息 count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray()); } return Convert.ToInt32(count); } catch (Exception ex) { throw ex; } } public void UpdatePlan(Countingplaninfo model) { if (this.BaseSession != null) { BaseSession.Update(model); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { session.Update(model); } } } #endregion #region 编辑时删除信息 /// /// 编辑时删除信息 /// /// 逻辑矩 /// 删除个数 public int EditDeleteUserWithMachine(CountingdetailInfo model) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); List parameters = new List(); int count = 0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //删除基本信息 sqlBuilder.Append("DELETE FROM T_PP_COUNTINGDETAIL "); //设备 if (string.IsNullOrEmpty(model.MATERIAL_CODE) == false) { whereBuilder.Append(" AND MATERIAL_CODE = @MATERIAL_CODE "); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = model.MATERIAL_CODE }); } //用户id if (string.IsNullOrEmpty(model.PLANID) == false) { whereBuilder.Append(" AND PLANID = @PLANID "); parameters.Add(new DataParameter { ParameterName = "PLANID", DataType = DbType.String, Value = model.PLANID }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } string sqlChange = ChangeSqlByDB(sqlBuilder.ToString(), session); count = session.ExecuteSql(sqlChange, parameters.ToArray()); } return count; } catch (Exception ex) { RecordExceptionLog(ex, "逻辑矩阵数据层-删除信息"); throw ex; } } #endregion #region 编辑时保存识别是否已存在 /// /// 编辑时保存识别是否已存在 /// 存在则更新,不存在插入 /// /// /// public int GetDetailInfo(CountingdetailInfo model) { string sql = null; int count = 0; List parameters = new List(); try { sql = this.GetSubQuerySql(model, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { count = Convert.ToInt32(session.GetTable(sql, parameters.ToArray()).Rows.Count); } return count; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "信息数据层-获取信息" }); throw; } } #endregion #region 删除父表数据根据ID T_PP_COUNTINGPLAN /// /// 删除父表数据根据ID /// /// 信息 /// 计划单号 public object Delete(string PID) { object result; try { StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); string[] list = PID.Split(":".ToCharArray()); foreach (string id in list) { sqlBuilder.Append(" DELETE FROM T_PP_COUNTINGPLAN WHERE PID='" + id + "'"); } using (IDataSession session = AppDataFactory.CreateMainSession()) { result = session.ExecuteSqlScalar(sqlBuilder.ToString(), parameters.ToArray()); } return result; } catch (Exception ex) { throw ex; } } #endregion #region 删除子表的数据根据PLANID T_PP_COUNTINGDETAIL /// /// 删除子表的数据根据PLANID /// /// 信息 /// 计划单号 public object SubDelete(string PLANID) { object result; try { StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); string[] list = PLANID.Split(":".ToCharArray()); foreach (string id in list) { sqlBuilder.Append(" DELETE FROM T_PP_COUNTINGDETAIL WHERE PLANID='" + id + "'"); } using (IDataSession session = AppDataFactory.CreateMainSession()) { result = session.ExecuteSqlScalar(sqlBuilder.ToString(), parameters.ToArray()); } return result; } catch (Exception ex) { throw ex; } } #endregion #region 获取盘点明细查询 /// /// 获取盘点明细查询 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetPanDetail(string PID, DataPage page) { DataTable table = null; StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); try { sqlBuilder.Append(@" SELECT CS.PID ,CS.MATERIAL_CODE, M.MATERIAL_NAME as MATERIALNAME , isnull(CS.MAINCODE,'') as MAINCODE, isnull(CS.PRODUCTCODE,'') as PRODUCTCODE, CS.QTY, CS.CREATEUSER, C.USERNAME AS CREATEUSERNAME, CS.CREATEDATE from T_PP_COUNTSHEET CS LEFT JOIN T_MD_MATERIAL M on CS.MATERIAL_Code=M.MATERIAL_CODE LEFT JOIN T_QM_USER C ON C.USERID=CS.CREATEUSER "); sqlBuilder.Append(" where CS.PlanID='" + PID + "'"); //分页关键字段及排序 page.KeyName = "PID"; page.SortExpression = "CREATEDATE DESC"; using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage(sqlBuilder.ToString(), parameters.ToArray(), page); } return page; } catch (Exception ex) { throw ex; } } #endregion #region 手持获取物料信息 /// /// 手持获取物料信息 /// /// /// public List GetMaterialOfPlan(string PLANID) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT M.* "); sql.AppendLine(" FROM T_PP_COUNTINGDETAIL AS P "); sql.AppendLine(" JOIN T_MD_MATERIAL AS M "); sql.AppendLine(" ON P.MATERIAL_CODE=M.MATERIAL_CODE "); sql.AppendLine(" WHERE P.PLANID=@planid "); parameters.Add(new DataParameter("planid", PLANID)); using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql.ToString(), session); //获取信息 return session.GetList(sqlChange, parameters.ToArray()).ToList(); } } catch (Exception ex) { RecordExceptionLog(ex, "盘点信息数据层-获取信息"); throw ex; } } #endregion #region 获取符合条件的产品信息 /// /// 获取符合条件的产品信息 /// /// /// public List GetListIn(Countingplaninfo countingplaninfo) { List listIn = new List(); StringBuilder sql = new StringBuilder(); sql.AppendFormat(@"select '{0}' AS PLANID,P.MATERIAL_TYPE AS MATERIAL_TYPE_CODE, P.MATERIAL_CODE,1 AS QTY,PRODUCTCODE,M.MAINCODE from T_AW_PRODUCT p LEFT JOIN T_AW_MAIN M ON M.EPIDERMISCODE=P.PRODUCTCODE where p.USINGSTATE='0' and p.OUTFLAG='0' and exists(select 1 from T_PP_COUNTINGDETAIL pd where pd.PLANID='{0}' and pd.MATERIAL_CODE=p.MATERIAL_CODE)", countingplaninfo.PID); using (IDataSession session = AppDataFactory.CreateMainSession()) { listIn = session.GetList(sql.ToString(), new List().ToArray()) .ToList(); } return listIn; } #endregion #region 盘点比对用到的方法 /// /// 盘点比对用到的方法 /// /// /// public DataTable GetResult(Countingplaninfo countingplaninfo) { DataTable dt = new DataTable(); //将库内数量与盘点数量整合到一起,然后将库内数量与盘点数量做差 //库内数量的统计方法 //注塑件:CFAA开头的产品记录 string sql = string.Format(@" select sum(QTY) as QTY,MATERIAL_TYPE_CODE,MATERIAL_CODE,sum(CAPACITY) as CAPACITY,(sum(qty)- sum(CAPACITY)) as QC,(sum(CAPACITY)-sum(qty)) as CQ from ( select 0 AS QTY, p.MATERIAL_TYPE as MATERIAL_TYPE_CODE, p.MATERIAL_CODE ,SUM(p.CAPACITY) AS CAPACITY from T_AW_PRODUCT p inner join t_md_material_class c on c.MATERIAL_TYPE_CODE=p.MATERIAL_TYPE inner join T_MD_MATERIAL m on m.MATERIAL_CODE=p.MATERIAL_CODE where exists(select 1 from T_PP_COUNTINGDETAIL pd where pd.PLANID='{0}' and pd.MATERIAL_CODE=m.MATERIAL_CODE) and c.MATERIAL_ATTRIBUTE='2' and p.outflag='0' and p.status in ('0','1') group by p.MATERIAL_TYPE,p.MATERIAL_CODE union select 0 as QTY,mc1.MATERIAL_TYPE_CODE, pc.MATERIAL_CODE,pc.COUNTVALUE as CAPACITY from T_AW_PRODUCTCOUNT pc inner join T_MD_MATERIAL m1 on pc.MATERIAL_CODE=m1.MATERIAL_CODE inner join T_MD_MATERIAL_CLASS mc1 on mc1.MATERIAL_TYPE_CODE=m1.MATERIAL_TYPE_CODE where pc.PROTYPE=0 and exists(select 1 from T_PP_COUNTINGDETAIL pd2 where pd2.PLANID='{0}' and pd2.MATERIAL_CODE=m1.MATERIAL_CODE) union select pc.COUNTVALUE as QTY,mc1.MATERIAL_TYPE_CODE, pc.MATERIAL_CODE,0 as CAPACITY from T_AW_PRODUCTCOUNT pc inner join T_MD_MATERIAL m1 on pc.MATERIAL_CODE=m1.MATERIAL_CODE inner join T_MD_MATERIAL_CLASS mc1 on mc1.MATERIAL_TYPE_CODE=m1.MATERIAL_TYPE_CODE and pc.PROTYPE=1 and exists(select 1 from T_PP_COUNTINGDETAIL pd2 where pd2.PLANID='{0}' and pd2.MATERIAL_CODE=m1.MATERIAL_CODE) union select sum(isnull(mr.mendnumber,0)) as QTY, mc3.MATERIAL_TYPE_CODE, m2.MATERIAL_CODE ,0 AS CAPACITY from T_AW_MENDRECORDER mr INNER join t_md_material m2 on mr.MATERIAL_CODE=m2.MATERIAL_CODE inner join T_MD_MATERIAL_CLASS mc3 on mc3.MATERIAL_TYPE_CODE=m2.MATERIAL_TYPE_CODE where exists(select 1 from T_PP_COUNTINGDETAIL pd where pd.PLANID='{0}' and pd.MATERIAL_CODE=m2.MATERIAL_CODE) and mc3.MATERIAL_ATTRIBUTE='1' group by mc3.MATERIAL_TYPE_CODE, m2.MATERIAL_CODE union select sum(qty) as QTY, MATERIAL_TYPE_CODE,MATERIAL_CODE ,0 as CAPACITY from T_PP_COUNTSHEET WHERE PLANID='{0}' group by MATERIAL_TYPE_CODE,MATERIAL_CODE,PLANID ) temp group by MATERIAL_CODE,MATERIAL_TYPE_CODE " , countingplaninfo.PID); using (IDataSession session = AppDataFactory.CreateMainSession()) { dt = session.GetTable(sql, new List().ToArray()); } return dt; } #endregion #region 获取每日计划单号 /// /// 获取每日计划单号 /// /// 信息 /// 计划单号 public object GetPlanNoByDate(string NowDate) { object result; try { StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); sqlBuilder.Append(" select PLAN_NO from T_PP_COUNTINGPLAN where PLAN_NO like '" + NowDate.Replace("-", "") + "%' order by CreateDate desc "); using (IDataSession session = AppDataFactory.CreateMainSession()) { result = session.ExecuteSqlScalar(sqlBuilder.ToString(), parameters.ToArray()); } return result; } catch (Exception ex) { throw ex; } } #endregion #region 是否是服务盘点计划的物料 /// /// 是否是服务盘点计划的物料 /// /// /// /// public QMAPP.MD.Entity.Material IsPlanMaterial(string planid, string materialcode) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT M.* "); sql.AppendLine(" FROM T_PP_COUNTINGDETAIL AS P "); sql.AppendLine(" JOIN T_MD_MATERIAL AS M "); sql.AppendLine(" ON P.MATERIAL_CODE=M.MATERIAL_CODE "); sql.AppendLine(" WHERE P.MATERIAL_CODE=@materialcode "); sql.AppendLine(" AND P.PLANID=@planid "); parameters.Add(new DataParameter("materialcode", materialcode)); parameters.Add(new DataParameter("planid", planid)); using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql.ToString(), session); //获取信息 return session.Get(sqlChange, parameters.ToArray()); } } catch (Exception ex) { RecordExceptionLog(ex, "盘点信息数据层-获取信息"); throw ex; } } #endregion #region 删除盘点计划下的对比结果 /// /// 删除盘点计划下的对比结果 /// /// public void DeletResultInfo(string PID) { string sql = string.Format("delete from T_PP_COUNTRESULT where PLANID='{0}'", PID); this.BaseSession.ExecuteSql(sql, new List().ToArray()); } #endregion #region 插入信息T_PP_COUNTSHEET /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public int InsertCountSheet(CountSheetInfo model) { int count = 0; try { if (this.BaseSession != null) { count = BaseSession.Insert(model); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 count = session.Insert(model); } } return count; } catch (Exception ex) { throw ex; } } #endregion #region 获取盘点计划ID /// /// 获取盘点计划ID /// /// /// public Countingplaninfo GetPlanId(Countingplaninfo model) { try { if (this.BaseSession != null) { model = BaseSession.Get(model); } else { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_COUNTINGPLAN WHERE '1'='1'"; if (string.IsNullOrEmpty(model.PID) == false) { sql += " AND PID = @PID"; parameters.Add(new DataParameter("PID", model.PID)); } if (string.IsNullOrEmpty(model.PLAN_NO) == false) { sql += " AND PLAN_NO = @PLAN_NO"; parameters.Add(new DataParameter("PLAN_NO", model.PLAN_NO)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql, session); //获取信息 model = session.Get(sqlChange, parameters.ToArray()); } return model; } catch (Exception ex) { throw ex; } } return model; } catch (Exception ex) { throw ex; } } #endregion #region 获取校验是否存在信息(查验此产品条码是否已经盘点) /// /// 获取校验是否存在信息 /// /// 条件 /// 信息 public CountSheetInfo GetStocktaking(CountSheetInfo model) { try { if (this.BaseSession != null) { model = BaseSession.Get(model); } else { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_COUNTSHEET WHERE '1'='1'"; if (string.IsNullOrEmpty(model.PID) == false) { sql += " AND PID = @PID"; parameters.Add(new DataParameter("PID", model.PID)); } if (string.IsNullOrEmpty(model.MATERIAL_CODE) == false) { sql += " AND MATERIAL_CODE = @MATERIAL_CODE"; parameters.Add(new DataParameter("MATERIAL_CODE", model.MATERIAL_CODE)); } if (string.IsNullOrEmpty(model.PRODUCTCODE) == false) { sql += " AND PRODUCTCODE = @PRODUCTCODE"; parameters.Add(new DataParameter("PRODUCTCODE", model.PRODUCTCODE)); } if (!string.IsNullOrEmpty(model.PLAN_NO)) { sql += " AND PLAN_NO = @PLAN_NO"; parameters.Add(new DataParameter("PLAN_NO", model.PLAN_NO)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql, session); //获取信息 model = session.Get(sqlChange, parameters.ToArray()); } return model; } catch (Exception ex) { RecordExceptionLog(ex, "盘点信息数据层-获取信息"); throw ex; } } return model; } catch (Exception ex) { throw ex; } } #endregion #region 获取手持盘点信息 /// /// 获取手持盘点信息 /// /// /// public List GetCountSheetInfoList(CountSheetInfo condition) { List sheetList = new List(); StringBuilder sql = new StringBuilder(); sql.Append("select PLANID, MATERIAL_TYPE_CODE,MATERIAL_CODE,QTY ,PRODUCTCODE,MAINCODE from T_PP_COUNTSHEET where 1=1 "); if (string.IsNullOrEmpty(condition.PLANID) == false) { sql.AppendFormat(" and PLANID='{0}' ", condition.PLANID); } using (IDataSession session = AppDataFactory.CreateMainSession()) { sheetList = session.GetList(sql.ToString(), new List().ToArray()) .ToList(); } return sheetList; } #endregion #region 获取盘点对比结果查询 /// /// 获取盘点对比结果查询 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetPanResultDetail(string PID, DataPage page) { DataTable table = null; StringBuilder sqlBuilder = new StringBuilder(); List parameters = new List(); try { sqlBuilder.Append(" select P.MATERIAL_CODE ,p.CREATEDATE, M.MATERIAL_NAME as MATERIALNAME ,P.QTY ,cASE P.COMPARERESULT when '1' then '实物盈' else '实物亏' end as COMPARERESULT ,P.PRODUCTCODE,P.MAINCODE from T_PP_COUNTRESULT P "); sqlBuilder.Append(" LEFT JOIN "); sqlBuilder.Append(" T_MD_MATERIAL M on P.MATERIAL_cODE=M.MATERIAL_cODE where P.PLANID='" + PID + "' "); //分页关键字段及排序 page.KeyName = "PID"; page.SortExpression = "CREATEDATE DESC"; using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage(sqlBuilder.ToString(), parameters.ToArray(), page); } return page; } catch (Exception ex) { throw ex; } } public List GetResultInfoList(string PID) { List list = new List(); string sql = string.Format("select * from T_PP_COUNTRESULT where PLANID='{0}'", PID); using (IDataSession session = AppDataFactory.CreateMainSession()) { list = session.GetList(sql, new List().ToArray()).ToList(); } return list; } #endregion #region 获取导出的数据 /// /// 获取导出的数据 /// /// 查询条件 /// 数据 public DataTable GetExportData(string PID) { DataTable dt = null; string sql = null; List parameters = new List(); StringBuilder sqlBuilder = new StringBuilder(); try { sqlBuilder.Append(@" select CSheet.PID , CSheet.MATERIAL_Code, TM.MATERIAL_NAME as MATERIALNAME , isnull(CSheet.MATERIAL_SN,'') as MATERIAL_SN, CSheet.QTY, CSheet.CREATEUSER, CSheet.CREATEDATE from T_PP_COUNTSHEET CSheet left join T_MD_MATERIAL TM on CSheet.MATERIAL_Code=TM.MATERIAL_Code "); sqlBuilder.Append(" where CSheet.PLanID='" + PID + "'"); ////构成查询语句 using (IDataSession session = AppDataFactory.CreateMainSession()) { dt = session.GetTable(sqlBuilder.ToString(), parameters.ToArray()); dt.TableName = "T_PP_COUNTSHEET"; } return dt; } catch (Exception ex) { throw ex; } } #endregion /// /// 获取盘点计划下的 /// /// /// public List GetCountDetailList(CountingdetailInfo condition) { List parameters = new List(); string sql = null; sql = this.GetSubQuerySql(condition, ref parameters); List list = new List(); using (IDataSession session = AppDataFactory.CreateMainSession()) { list = session.GetList(sql, parameters.ToArray()).ToList(); } return list; } /// /// 出入库处理 /// /// public void ProductInOutDeal(Countingplaninfo plan) { try { #region //更新产品入库 string updateGainSql = string.Format(@"update T_AW_PRODUCT set outflag='0' where exists(select 1 from T_PP_COUNTRESULT where PLANID='{0}' and COMPARERESULT='1' and T_PP_COUNTRESULT.PRODUCTCODE=T_AW_PRODUCT.PRODUCTCODE and T_AW_PRODUCT.MATERIAL_CODE=T_PP_COUNTRESULT.MATERIAL_CODE) ", plan.PID); //更新产品出库 string updateLossSql = string.Format(@"update T_AW_PRODUCT set outflag='1' where exists(select 1 from T_PP_COUNTRESULT where PLANID='{0}' and COMPARERESULT='0' and T_PP_COUNTRESULT.PRODUCTCODE=T_AW_PRODUCT.PRODUCTCODE and T_AW_PRODUCT.MATERIAL_CODE=T_PP_COUNTRESULT.MATERIAL_CODE) ", plan.PID); //插入入库信息 string insertProductIn = string.Format("insert into T_AW_PRODUCTIN select NEWID() as PID, '0' AS INTYPE, PRODUCTCODE, MATERIAL_CODE,'{0}' AS INUSER,GETDATE() AS INDATE from T_PP_COUNTRESULT where PLANID='{1}' and COMPARERESULT='1'", plan.CREATEUSER, plan.PID); ////插出入库信息 string insertProductOut = string.Format(@"insert into T_AW_PRODUCTOUT select NEWID() as PID, PRODUCTCODE, MATERIAL_CODE,'' as WORKCENTER_CODE,'' AS WORKCELL_CODE,'0' AS OUTREASON, '' AS SHIFT_CODE,'{0}' AS CREATEUSER ,GETDATE() AS CREATEDATE,'{0}' AS UPDATEUSER , GETDATE() AS UPDATEDATE from T_PP_COUNTRESULT where PLANID='{1}' and COMPARERESULT='0'", plan.CREATEUSER, plan.PID); #endregion using (IDataSession session = AppDataFactory.CreateMainSession()) { session.OpenTs(); try { //更新入库件 session.ExecuteSql(updateGainSql, new List().ToArray()); LogManager.LogHelper.Info(new LogInfo() { Info = updateGainSql }); //更新出库件 session.ExecuteSql(updateLossSql, new List().ToArray()); LogManager.LogHelper.Info(new LogInfo() { Info = updateLossSql }); //插入入库记录 session.ExecuteSql(insertProductIn, new List().ToArray()); LogManager.LogHelper.Info(new LogInfo() { Info = insertProductIn }); //插入出库记录 session.ExecuteSql(insertProductOut, new List().ToArray()); LogManager.LogHelper.Info(new LogInfo() { Info = insertProductOut }); session.CommitTs(); } catch (Exception ex) { session.RollbackTs(); LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex }); } } } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex }); } } } }