using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMAPP.DAL; using QMFrameWork.Data; using QMAPP.FJC.Entity.Operation; using System.Data; using QMFrameWork.Log; using QMAPP.Entity; namespace QMAPP.FJC.DAL.Operation { /// /// 抽检 /// 郭兆福 /// 20180529 /// public class ProductCheckDAL : BaseDAL { #region 获取信息 /// /// 获取信息 /// /// 条件 /// 信息 public ProductCheck Get(ProductCheck model) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_AW_PRODUCTCHECK WHERE '1'='1'"; if (string.IsNullOrEmpty(model.PID) == false) { sql += " AND PID = @PID"; parameters.Add(new DataParameter("PID", model.PID)); } if (string.IsNullOrEmpty(model.PRODUCTCODE) == false) { sql += " AND PRODUCTCODE = @PRODUCTCODE"; parameters.Add(new DataParameter("PRODUCTCODE", model.PRODUCTCODE)); } 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; } } #endregion #region 获取列表 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetList(ProductCheck 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 = "CREATEDATE DESC"; } using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage(sql, parameters.ToArray(), page); } return page; } catch (Exception ex) { throw ex; } } /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public List GetList(string[] idarray) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT * FROM T_AW_PRODUCTCHECK"); sql.Append(" WHERE PID IN ("); for (int i=0;i 0 ? ",@id{0}" : "@id{0}", i); parameters.Add(new DataParameter(string.Format("id{0}", i), idarray[i])); } sql.AppendLine(")"); sql.AppendLine(" ORDER BY CREATEDATE ASC"); using (IDataSession session = AppDataFactory.CreateMainSession()) { return session.GetList(sql.ToString(), parameters.ToArray()).ToList(); } } catch (Exception ex) { throw ex; } } #endregion #region 获取查询语句 /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetQuerySql(ProductCheck condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT P.PID,"); sqlBuilder.AppendLine(" P.PRODUCTCODE,"); sqlBuilder.AppendLine(" P.MATERIAL_CODE,"); sqlBuilder.AppendLine(" M.MATERIAL_NAME,"); sqlBuilder.AppendLine(" P.CHECKRESULT,"); sqlBuilder.AppendLine(" P.CREATEDATE,"); sqlBuilder.AppendLine(" P.PRODUCTCHECKTYPE,"); sqlBuilder.AppendLine(" C.USERNAME AS CREATEUSERNAME, "); //sqlBuilder.AppendLine(" A.CREATEDATE AS PRODUCEDATE,"); sqlBuilder.AppendLine(" P.CREATEUSER"); sqlBuilder.AppendLine(" FROM T_AW_PRODUCTCHECK P"); sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M on M.MATERIAL_CODE=P.MATERIAL_CODE "); //sqlBuilder.AppendLine(" LEFT JOIN T_AW_PRODUCT A on A.PRODUCTCODE=P.PRODUCTCODE "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=P.CREATEUSER "); //查询条件 if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false) { whereBuilder.Append(" AND P.MATERIAL_CODE LIKE '%'+" + "@MATERIAL_CODE" + "+'%'"); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE }); } if (string.IsNullOrEmpty(condition.CHECKRESULT) == false) { whereBuilder.Append(" AND P.CHECKRESULT=@CHECKRESULT "); parameters.Add(new DataParameter { ParameterName = "CHECKRESULT", DataType = DbType.String, Value = condition.CHECKRESULT }); } if (string.IsNullOrEmpty(condition.PRODUCTCHECKTYPE) == false) { whereBuilder.Append(" AND P.PRODUCTCHECKTYPE=@PRODUCTCHECKTYPE "); parameters.Add(new DataParameter { ParameterName = "PRODUCTCHECKTYPE", DataType = DbType.String, Value = condition.PRODUCTCHECKTYPE }); } if (string.IsNullOrEmpty(condition.PRODUCTCODE) == false) { whereBuilder.Append(" AND P.PRODUCTCODE LIKE '%'+" + "@PRODUCTCODE" + "+'%' "); parameters.Add(new DataParameter { ParameterName = "PRODUCTCODE", DataType = DbType.String, Value = condition.PRODUCTCODE }); } //时间 if (condition.CREATEDATESTART != DateTime.MinValue) { whereBuilder.Append(" AND P.CREATEDATE>@CREATEDATESTART "); parameters.Add(new DataParameter { ParameterName = "CREATEDATESTART", DataType = DbType.String, Value = condition.CREATEDATESTART.ToString("yyyy-MM-dd HH:mm:ss") }); } if (condition.CREATEDATEEND != DateTime.MinValue) { whereBuilder.Append(" AND P.CREATEDATE<@CREATEDATEEND "); parameters.Add(new DataParameter { ParameterName = "CREATEDATEEND", DataType = DbType.String, Value = condition.CREATEDATEEND.ToString("yyyy-MM-dd HH:mm:ss") }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 获取配置表列表 /// /// 获取配置表列表 /// /// /// /// public CheckWithMaterial GetCheckWithMaterial(CheckWithMaterial condition) { string sql = null; List parameters = new List(); try { sql = this.GetQuerySqlCheck(condition, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { condition = session.Get(sql, parameters.ToArray()); } return condition; } catch (Exception ex) { throw ex; } } #endregion #region 获取配置表信息 /// /// 获取配置表信息 /// /// 条件 /// *信息 public List GetCheckWithMaterialInfo(CheckWithMaterial condition) { string sql = null; List materiallist = new List(); List parameters = new List(); try { sql = this.GetQuerySqlCheck(condition, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取信息 materiallist = session.GetList(sql, parameters.ToArray()).ToList(); } return materiallist; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "物料本体-获取信息" }); throw; } } #endregion #region 确认保存时是否已存在 /// /// 确认保存时是否已存在 /// 存在则更新,不存在插入 /// /// /// public CheckValueItem GetDetailInfo(CheckValueItem model) { string sql = null; //int count = 0; List parameters = new List(); try { sql = this.GetCheckValueItemSql(model, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { //count = Convert.ToInt32(session.GetTable(sql, parameters.ToArray()).Rows.Count); model = session.Get(sql, parameters.ToArray()); } return model; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "信息数据层-获取信息" }); throw; } } #endregion #region 插入信息 T_AW_CHECKVALUEITEM表 /// /// 插入信息 T_AW_CHECKVALUEITEM表 /// /// /// public int InsertCheckValue(List list) { ImportMessage em = new ImportMessage(); int count = 0; List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //设置祖先对象数据会话 session.OpenTs(); foreach (CheckValueItem info in list) { count = session.Insert(info); } session.CommitTs(); } } catch (Exception ex) { throw ex; } return count; } #endregion #region 更新T_AW_CHECKVALUEITEM信息 /// /// 更新T_AW_CHECKVALUEITEM信息 /// /// /// 更新行数 public int UpdateCheckValue(List list) { ImportMessage em = new ImportMessage(); int count = 0; List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //设置祖先对象数据会话 session.OpenTs(); foreach (CheckValueItem info in list) { count = session.Update(info); } session.CommitTs(); } } catch (Exception ex) { throw ex; } return count; } #endregion #region 插入信息(T_AW_PRODUCTCHECK) /// /// 插入信息(T_AW_PRODUCTCHECK) /// /// 信息 /// 插入行数 public int InsertProductCheck(ProductCheck model) { int count = 0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 count = session.Insert(model); } return count; } catch (Exception ex) { throw ex; } } #endregion #region 更新信息(T_AW_PRODUCTCHECK) /// /// 更新信息(T_AW_PRODUCTCHECK) /// /// 信息 /// 行数 public int UpdateProductCheck(ProductCheck model) { int count = 0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 count = session.Update(model); } return count; } catch (Exception ex) { throw ex; } } #endregion #region 获取T_AW_CHECKVALUEITEM查询语句 /// /// 获取T_AW_CHECKVALUEITEM查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetCheckValueItemSql(CheckValueItem condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT C.PID,"); sqlBuilder.AppendLine(" C.PRODUCTCHECK_PID,"); sqlBuilder.AppendLine(" C.CHECKITEMCODE,"); sqlBuilder.AppendLine(" C.INPUTVALUE,"); sqlBuilder.AppendLine(" C.CREATEDATE,"); sqlBuilder.AppendLine(" C.CREATEUSER"); sqlBuilder.AppendLine(" FROM T_AW_CHECKVALUEITEM C"); //查询条件 if (string.IsNullOrEmpty(condition.PRODUCTCHECK_PID) == false) { whereBuilder.Append(" AND C.PRODUCTCHECK_PID =@PRODUCTCHECK_PID"); parameters.Add(new DataParameter { ParameterName = "PRODUCTCHECK_PID", DataType = DbType.String, Value = condition.PRODUCTCHECK_PID }); } if (string.IsNullOrEmpty(condition.CHECKITEMCODE) == false) { whereBuilder.Append(" AND C.CHECKITEMCODE =@CHECKITEMCODE"); parameters.Add(new DataParameter { ParameterName = "CHECKITEMCODE", DataType = DbType.String, Value = condition.CHECKITEMCODE }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 获取T_AW_CHECKWITHMATERIAL查询语句 /// /// 获取T_AW_CHECKWITHMATERIAL查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetQuerySqlCheck(CheckWithMaterial condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 if (string.IsNullOrEmpty(condition.PRODUCTCHECK_PID) == true) { sqlBuilder.AppendLine(" SELECT P.PID,"); sqlBuilder.AppendLine(" P.MATERIAL_TYPE_CODE,"); sqlBuilder.AppendLine(" P.CHECKITEMCODE,"); sqlBuilder.AppendLine(" P.CHECKITEMNAME,"); sqlBuilder.AppendLine(" P.STANDERDVALUE_DOWN,"); sqlBuilder.AppendLine(" P.STANDERDVALUE_UPPER,"); //sqlBuilder.AppendLine(" C.INPUTVALUE,"); sqlBuilder.AppendLine(" P.INPUTTYPE"); sqlBuilder.AppendLine(" FROM T_AW_CHECKWITHMATERIAL P"); sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M on M.MATERIAL_TYPE_CODE=P.MATERIAL_TYPE_CODE "); //sqlBuilder.AppendLine(" LEFT JOIN T_AW_CHECKVALUEITEM C on C.CHECKITEMCODE=P.CHECKITEMCODE "); } else { sqlBuilder.AppendLine(" SELECT P.PID,"); sqlBuilder.AppendLine(" P.MATERIAL_TYPE_CODE,"); sqlBuilder.AppendLine(" P.CHECKITEMCODE,"); sqlBuilder.AppendLine(" P.CHECKITEMNAME,"); sqlBuilder.AppendLine(" P.STANDERDVALUE_DOWN,"); sqlBuilder.AppendLine(" P.STANDERDVALUE_UPPER,"); sqlBuilder.AppendLine(" C.INPUTVALUE,"); sqlBuilder.AppendLine(" U.USERNAME AS CREATEUSERNAME,"); sqlBuilder.AppendLine(" C.CREATEDATE,"); sqlBuilder.AppendLine(" P.INPUTTYPE"); sqlBuilder.AppendLine(" FROM T_AW_CHECKWITHMATERIAL P"); sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M on M.MATERIAL_TYPE_CODE=P.MATERIAL_TYPE_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_AW_CHECKVALUEITEM C on C.CHECKITEMCODE=P.CHECKITEMCODE "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=C.CREATEUSER"); } //查询条件 if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false) { whereBuilder.Append(" AND M.MATERIAL_CODE =@MATERIAL_CODE"); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE }); } if (string.IsNullOrEmpty(condition.CHECKITEMCODE) == false) { whereBuilder.Append(" AND P.CHECKITEMCODE =@CHECKITEMCODE"); parameters.Add(new DataParameter { ParameterName = "CHECKITEMCODE", DataType = DbType.String, Value = condition.CHECKITEMCODE }); } if (string.IsNullOrEmpty(condition.PRODUCTCHECK_PID) == false) { whereBuilder.Append(" AND C.PRODUCTCHECK_PID =@PRODUCTCHECK_PID"); parameters.Add(new DataParameter { ParameterName = "PRODUCTCHECK_PID", DataType = DbType.String, Value = condition.PRODUCTCHECK_PID }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 删除 /// /// 删除 /// /// /// public int Delete(string pid) { int count = 0; int i =0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //删除基本信息 count = session.Delete(new ProductCheck() { PID = pid }); i = DeleteCheckValue(pid); } return count; } catch (Exception ex) { throw ex; } } private int DeleteCheckValue(string pid) { string sql = null; int i = 0; List parameters = new List(); try { sql = "DELETE FROM T_AW_CHECKVALUEITEM WHERE '1'='1'"; if (string.IsNullOrEmpty(pid) == false) { sql += " AND PRODUCTCHECK_PID = @PID"; parameters.Add(new DataParameter("PID", pid)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { string sqlChange = this.ChangeSqlByDB(sql, session); //获取信息 i = session.ExecuteSql(sqlChange, parameters.ToArray()); } return i; } catch (Exception ex) { RecordExceptionLog(ex, "信息数据层-删除信息"); throw ex; } } #endregion #region 获取列表输入值 /// /// 获取列表输入值 /// /// 条件 /// 列表 public List GetInputValueList(InputValue condition) { string sql = null; List parameters = new List(); List listProcessInfo = new List(); try { sql = "SELECT * FROM T_AW_INPUTVALUE WHERE '1'='1'"; if (string.IsNullOrEmpty(condition.CHECKITEMCODE) == false) { sql += " AND CHECKITEMCODE = @CHECKITEMCODE"; parameters.Add(new DataParameter("CHECKITEMCODE", condition.CHECKITEMCODE)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { // 对应多种数据库 string sqlChange = this.ChangeSqlByDB(sql, session); listProcessInfo = session.GetList(sqlChange, parameters.ToArray()).ToList(); } return listProcessInfo; } catch (Exception ex) { RecordExceptionLog(ex, "信息-获取列表"); throw ex; } } #endregion #region 获取详细信息 /// /// /// /// /// public List GetProductCheckItemList(CheckWithMaterial condition) { string sql = null; List list = new List(); List parameters = new List(); try { sql = this.GetQuerySqlCheck(condition, ref parameters); //分页关键字段及排序 using (IDataSession session = AppDataFactory.CreateMainSession()) { list = session.GetList(sql, parameters.ToArray()).ToList(); } return list; } catch (Exception ex) { throw ex; } } #endregion public List GetCheckItems(string materialtype) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT * FROM T_AW_CHECKWITHMATERIAL"); sql.AppendLine(" WHERE MATERIAL_TYPE_CODE=@materialtype"); sql.AppendLine(" ORDER BY CHECKITEMCODE"); parameters.Add(new DataParameter("materialtype", materialtype)); using (IDataSession session = AppDataFactory.CreateMainSession()) { return session.GetList(sql.ToString(), parameters.ToArray()).ToList(); } } catch (Exception ex) { throw ex; } } public List GetCheckValueItems(string[] idarray) { StringBuilder sql = new StringBuilder(); List parameters = new List(); try { sql.AppendLine("SELECT * FROM T_AW_CHECKVALUEITEM"); sql.Append(" WHERE PRODUCTCHECK_PID IN ("); for (int i = 0; i < idarray.Length; i++) { sql.AppendFormat(i > 0 ? ",@id{0}" : "@id{0}", i); parameters.Add(new DataParameter(string.Format("id{0}", i), idarray[i])); } sql.AppendLine(")"); sql.AppendLine(" ORDER BY CREATEDATE ASC"); using (IDataSession session = AppDataFactory.CreateMainSession()) { return session.GetList(sql.ToString(), parameters.ToArray()).ToList(); } } catch (Exception ex) { throw ex; } } } }