using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMAPP.FJC.Entity.FIS; using QMFrameWork.Data; using QMFrameWork.Log; using System.Data; using QMAPP.Entity; using QMAPP.DAL; using QMAPP.FJC.Entity.FileCopy.FIS; namespace QMAPP.FJC.DAL.FIS { /// /// 注塑计划管理 /// /// /// public class OrderPlanDAL : BaseDAL { #region 获取信息 /// /// 获取信息 /// /// 条件 /// 信息 public OrderPlan Get(OrderPlan model) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_ORDERPLAN 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)); } if (string.IsNullOrEmpty(model.MACHINECODDE) == false) { sql += " AND MACHINECODDE = @MACHINECODDE"; parameters.Add(new DataParameter("MACHINECODDE", model.MACHINECODDE)); } 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.PLAN_STATES) == false) { sql += " AND PLAN_STATE IN ('" + model.PLAN_STATES.Replace(",", "','") + "')"; } if (BaseSession != null) { //获取信息 model = BaseSession.Get(sql, parameters.ToArray()); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取信息 model = session.Get(sql, parameters.ToArray()); } } return model; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "信息数据层-获取信息" }); throw; } } public OrderPlan GetOne(OrderPlan model) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_ORDERPLAN WHERE PLAN_STATE IN ('1','2') "; 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)); } if (string.IsNullOrEmpty(model.MACHINECODDE) == false) { sql += " AND MACHINECODDE = @MACHINECODDE"; parameters.Add(new DataParameter("MACHINECODDE", model.MACHINECODDE)); } if (string.IsNullOrEmpty(model.MATERIAL_CODE) == false) { sql += " AND MATERIAL_CODE = @MATERIAL_CODE"; parameters.Add(new DataParameter("MATERIAL_CODE", model.MATERIAL_CODE)); } sql += " order by CREATEDATE desc "; using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取信息 model = session.Get(sql, parameters.ToArray()); } return model; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "信息数据层-获取信息" }); throw; } } public OrderPlan GetInfo(OrderPlan model) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_PP_ORDERPLAN WHERE PLAN_NO = @PLAN_NO"; using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取信息 parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = model.PLAN_NO }); 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 获取列表 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetList(OrderPlan 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) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "注塑信息数据层-获取列表" }); throw; } } #endregion #region 获取查询语句 /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetQuerySql(OrderPlan condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT DISTINCT O.PID "); sqlBuilder.AppendLine(" ,O.FACTORY_CODE "); sqlBuilder.AppendLine(" ,F.FACTORY_NAME "); sqlBuilder.AppendLine(" ,O.PLAN_NO "); sqlBuilder.AppendLine(" ,O.PLAN_SEQ "); sqlBuilder.AppendLine(" ,O.PLAN_STATE "); sqlBuilder.AppendLine(" ,O.MATERIAL_CODE "); sqlBuilder.AppendLine(" ,M.MATERIAL_NAME "); sqlBuilder.AppendLine(" ,O.MACHINECODDE "); sqlBuilder.AppendLine(" ,O.PBOM_CODE "); sqlBuilder.AppendLine(" ,O.ROUTE_CODE "); sqlBuilder.AppendLine(" ,O.REMARK "); sqlBuilder.AppendLine(" ,O.QTY "); sqlBuilder.AppendLine(" ,O.COMPLETE_QTY "); sqlBuilder.AppendLine(" ,CONVERT(VARCHAR(19),O.PLAN_DATE,120) AS PLAN_DATE "); sqlBuilder.AppendLine(" ,O.SHIFT_CODE "); sqlBuilder.AppendLine(" ,P.PRODUCESHIFTNAME AS SHIFT_NAME "); sqlBuilder.AppendLine(" ,O.PLANSOURCE "); sqlBuilder.AppendLine(" ,O.PRODUCEREQUIRE "); //sqlBuilder.AppendLine(" ,WC.WORKCENTER_CODE "); sqlBuilder.AppendLine(" ,O.CREATEUSER "); sqlBuilder.AppendLine(" ,O.CREATEDATE "); sqlBuilder.AppendLine(" ,O.UPDATEUSER "); sqlBuilder.AppendLine(" ,O.UPDATEDATE "); sqlBuilder.AppendLine(" ,O.IGNORE_FISBREAK "); sqlBuilder.AppendLine(" ,O.FIS_ASMSETCODE "); sqlBuilder.AppendLine(" ,O.STARTTIME AS STARTTIMEVIEW "); sqlBuilder.AppendLine(" ,O.ENDTIME AS ENDTIMEVIEW"); sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME "); sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME "); sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN O "); //注塑所需要的表T_PP_WORKORDER sqlBuilder.AppendLine(" LEFT JOIN T_BD_PRODUCESHIFT P ON P.PRODUCESHIFTTCODE=O.SHIFT_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_MD_FACTORY F ON F.FACTORY_CODE=O.FACTORY_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_PP_WORKORDER W ON W.ORDERPLANID=O.PID "); sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M ON M.MATERIAL_CODE=O.MATERIAL_CODE "); //sqlBuilder.AppendLine(" LEFT JOIN T_MD_WORKCELL WC ON WC.WORKCELL_CODE=PRW.WORKCELL_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=O.CREATEUSER "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=O.UPDATEUSER "); whereBuilder.AppendFormat(" AND O.WORKCENTER_CODE in (select distinct WORKCENTER from T_PP_ORDERINDENTITY where ORDER_TYPE='{0}')", condition.ORDER_TYPE); //查询条件 if (string.IsNullOrEmpty(condition.FACTORY_CODE) == false) { whereBuilder.Append(" AND O.FACTORY_CODE = @FACTORY_CODE "); parameters.Add(new DataParameter { ParameterName = "FACTORY_CODE", DataType = DbType.String, Value = condition.FACTORY_CODE }); } if (string.IsNullOrEmpty(condition.PLAN_NO) == false) { whereBuilder.Append(" AND O.PLAN_NO = @PLAN_NO "); parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = condition.PLAN_NO }); } //物料号 if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false) { whereBuilder.Append(" AND O.MATERIAL_CODE = @MATERIAL_CODE "); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE }); } //工艺路线 if (string.IsNullOrEmpty(condition.ROUTE_CODE) == false) { whereBuilder.Append(" AND O.ROUTE_CODE = @ROUTE_CODE "); parameters.Add(new DataParameter { ParameterName = "ROUTE_CODE", DataType = DbType.String, Value = condition.ROUTE_CODE }); } //班次编码 if (string.IsNullOrEmpty(condition.SHIFT_CODE) == false) { whereBuilder.Append(" AND O.SHIFT_CODE = @SHIFT_CODE "); parameters.Add(new DataParameter { ParameterName = "SHIFT_CODE", DataType = DbType.String, Value = condition.SHIFT_CODE }); } //设备 if (string.IsNullOrEmpty(condition.MACHINECODDE) == false) { whereBuilder.Append(" AND O.MACHINECODDE = @MACHINECODDE "); parameters.Add(new DataParameter { ParameterName = "MACHINECODDE", DataType = DbType.String, Value = condition.MACHINECODDE }); } //计划时间 if (condition.PLANTIMESTART != DateTime.MinValue) { whereBuilder.Append(" AND O.PLAN_DATE >= @PLANTIMESTART"); parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART }); } if (condition.PLANTIMEEND != DateTime.MinValue) { whereBuilder.Append(" AND O.PLAN_DATE <= @PLANTIMEEND"); parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region 信息是否重复 /// /// 判断计划单号是否存在 /// /// /// true:已存在;fasel:不存在。 public int ExistsOrderPlan(OrderPlan model) { string PID = ""; int count = 0; StringBuilder sqlBuilder = new StringBuilder(); try { if (string.IsNullOrEmpty(model.PID) == false) { PID = model.PID; } sqlBuilder.AppendLine("SELECT COUNT(*) FROM T_PP_ORDERPLAN "); sqlBuilder.AppendLine(" WHERE PID <> @PID AND PLAN_NO=@PLAN_NO"); using (IDataSession session = AppDataFactory.CreateMainSession()) { count = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", PID), new DataParameter { ParameterName = "PLAN_NO", Value = model.PLAN_NO })); } return count; } catch (Exception ex) { throw ex; } } #endregion #region 插入信息 /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public int Insert(OrderPlan model) { int count = 0; try { if (BaseSession != null) { //插入基本信息 count = BaseSession.Insert(model); InsertOrderPlanTrace(BaseSession, model, "新增"); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 count = session.Insert(model); InsertOrderPlanTrace(session, model, "新增"); } } //using (IDataSession session = AppDataFactory.CreateMainSession()) //{ // //插入基本信息 // count = session.Insert(model); //} return count; } catch (Exception ex) { throw ex; } } #endregion #region 更新信息 /// /// 更新信息 /// /// /// 更新行数 public int Update(OrderPlan model) { int count = 0; try { if (this.BaseSession != null) { count = BaseSession.Update(model); InsertOrderPlanTrace(BaseSession, model, "修改"); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //更新基本信息 count = session.Update(model); InsertOrderPlanTrace(session, model, "修改"); } } return count; } catch (Exception ex) { throw ex; } } #endregion #region 删除 /// /// 删除信息 /// /// /// 删除个数 //提交事务 public int Delete(OrderPlan model) { int count = 0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //删除基本信息 count = session.Delete(model); InsertOrderPlanTrace(session, model, "删除"); } return count; } catch (Exception ex) { throw ex; } } #endregion #region 删除校验 /// /// 删除校验 /// /// /// public int DelCheck(OrderPlan model) { int num = 0; int state; StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder2 = new StringBuilder(); sqlBuilder.AppendLine(" SELECT COMPLETE_QTY "); sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN "); sqlBuilder.AppendLine(" WHERE PID = @PID "); sqlBuilder2.AppendLine(" SELECT PLAN_STATE "); sqlBuilder2.AppendLine(" FROM T_PP_ORDERPLAN "); sqlBuilder2.AppendLine(" WHERE PID = @PID "); using (IDataSession session = AppDataFactory.CreateMainSession()) { num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID))); state = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder2.ToString(), new DataParameter("PID", model.PID))); } return num+state; } #endregion #region 发布 /// /// 发布信息 /// /// /// 发布个数 public int PutOut(OrderPlan model, DataTable workOrderDt) { BaseSession = AppDataFactory.CreateMainSession(); IDbConnection dbConn = DbManager.MainConnectionInfo.Connection; IDbTransaction ids = dbConn.BeginTransaction(); try { if (workOrderDt.Rows != null) { BaseSession.DbHelper.BulkCopyData(workOrderDt, "T_PP_WORKORDER", dbConn, ids); ids.Commit(); } } catch (Exception ex) { ids.Rollback(); throw ex; } int count = 0; int count2 = 0; StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder2 = new StringBuilder(); List parameters = new List(); using (IDataSession session = AppDataFactory.CreateMainSession()) { sqlBuilder.AppendLine(" UPDATE T_PP_ORDERPLAN "); sqlBuilder.AppendLine(" SET PLAN_STATE='1' "); sqlBuilder.AppendLine(" WHERE PID = @PID "); sqlBuilder2.AppendLine(" UPDATE T_PP_WORKORDER "); sqlBuilder2.AppendLine(" SET STATE='1' "); sqlBuilder2.AppendLine(" WHERE ORDERPLANID = @PID "); //发布更新基本信息 parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = model.PID }); count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray()); count2 = session.ExecuteSql(sqlBuilder2.ToString(), parameters.ToArray()); } return count; } #endregion #region 发布 新 /// /// 发布信息 /// 为了事物传递新的session zxd20171101 /// /// /// 发布个数 public int PutOutBaseSession(OrderPlan model, DataTable workOrderDt) { if (BaseSession==null) { BaseSession = AppDataFactory.CreateMainSession(); } //IDbConnection dbConn = DbManager.MainConnectionInfo.Connection; //IDbTransaction ids = dbConn.BeginTransaction(); //try //{ // if (workOrderDt.Rows != null) // { // BaseSession.DbHelper.BulkCopyData(workOrderDt, "T_PP_WORKORDER", dbConn, ids); // ids.Commit(); // } //} //catch (Exception ex) //{ // ids.Rollback(); // throw ex; //} int count = 0; int count2 = 0; StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder2 = new StringBuilder(); List parameters = new List(); sqlBuilder.AppendLine(" UPDATE T_PP_ORDERPLAN "); sqlBuilder.AppendLine(" SET PLAN_STATE='1' "); sqlBuilder.AppendLine(" WHERE PID = @PID "); sqlBuilder2.AppendLine(" UPDATE T_PP_WORKORDER "); sqlBuilder2.AppendLine(" SET STATE='1' "); sqlBuilder2.AppendLine(" WHERE ORDERPLANID = @PID "); //发布更新基本信息 parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = model.PID }); //string sqlChange = ChangeSqlByDB(sqlBuilder.ToString(), session); count = BaseSession.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray()); count2 = BaseSession.ExecuteSql(sqlBuilder2.ToString(), parameters.ToArray()); return count; } #endregion #region 发布校验 /// /// 发布校验 /// /// /// public int PutOutCheck(OrderPlan model) { int num = 0; StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.AppendLine(" SELECT PLAN_STATE "); sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN "); sqlBuilder.AppendLine(" WHERE PID = @PID "); if (BaseSession != null) { num = Convert.ToInt32(BaseSession.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID))); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID))); } } return num; } #endregion #region 导入 public ImportMessage GetImportData(List list) { ImportMessage em = new ImportMessage(); List parameters = new List(); try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //设置祖先对象数据会话 session.OpenTs(); foreach (OrderPlan info in list) { if (info.IsNewInfo == true) { //插入信息 int count = session.Insert(info); InsertOrderPlanTrace(session, info, "新增"); //痕迹表 FISPlanRecord record = new FISPlanRecord(); record.PID = Guid.NewGuid().ToString(); record.MID = info.PID; record.PLAN_NO = info.PLAN_NO; record.MATERIAL_CODE = info.MATERIAL_CODE; record.PLAN_QTY = info.QTY; record.OPERATION_TYPE = "0"; record.CREATEUSER = info.CREATEUSER; record.CREATEDATE = info.CREATEDATE; int no = new OrderPlanDAL().InsertRecord(record); em.insertNum++; } else { //更新信息 int count = session.Update(info); InsertOrderPlanTrace(session, info, "修改"); #region 插入修改信息痕迹表 //插入修改信息痕迹表 FISPlanRecord record = new FISPlanRecord(); record.PID = Guid.NewGuid().ToString(); record.MID = info.PID; record.PLAN_NO = info.PLAN_NO; record.MATERIAL_CODE = info.MATERIAL_CODE; record.PLAN_QTY = info.QTY; record.OPERATION_TYPE = "1"; record.CREATEUSER = info.CREATEUSER; record.CREATEDATE = info.CREATEDATE; int no = new OrderPlanDAL().InsertRecord(record); #endregion em.updateNum++; } } session.CommitTs(); } } catch (Exception ex) { throw ex; } return em; } #endregion #region 获取导出的数据 /// /// 获取导出的数据 /// /// 查询条件 /// 数据 public DataTable GetExportData(OrderPlan model) { DataTable dt = null; string sql = null; List parameters = new List(); try { //构成查询语句 sql = this.GetQuerySql(model, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { dt = session.GetTable(sql, parameters.ToArray()); dt.TableName = "OrderPlanExp"; } return dt; } catch (Exception ex) { throw ex; } } #endregion #region 删除订单 public void DeleteOrderPlan(OrderPlan entity) { if (this.BaseSession != null) { BaseSession.Delete(entity); InsertOrderPlanTrace(BaseSession,entity, "删除"); } else { using(IDataSession session=AppDataFactory.CreateMainSession()) { session.Delete(entity); InsertOrderPlanTrace(session,entity, "删除"); } } } #endregion #region 改变更新订单 /// /// 改变更新订单 /// /// public void ChangeOrderPlan(OrderPlan entity) { if (this.BaseSession != null) { this.BaseSession.Update(entity); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { session.Update(entity); } } } #endregion #region 获取流水号 /// /// 获取流水号 /// /// 条件 /// *信息 public FISPlan GetOrderPlanSeq(FISPlan model) { string sql = null; List parameters = new List(); try { sql = "SELECT * FROM T_AW_FISPLAN WHERE 1=1 "; if (string.IsNullOrEmpty(model.PREFIX) == false) { sql += " AND PREFIX = @PREFIX"; parameters.Add(new DataParameter("PREFIX", model.PREFIX)); } if (string.IsNullOrEmpty(model.DATASTR) == false) { sql += " AND DATASTR = @DATASTR"; parameters.Add(new DataParameter("DATASTR", model.DATASTR)); } using (IDataSession session = AppDataFactory.CreateMainSession()) { //获取信息 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 更新流水号信息 /// /// 更新流水号信息 /// /// /// 更新行数 public int UpdateFisPlan(FISPlan model) { int count = 0; try { if (this.BaseSession != null) { count = BaseSession.Update(model); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //更新基本信息 count = session.Update(model); } } return count; } catch (Exception ex) { throw ex; } } #endregion #region 插入流水号信息 /// /// 插入信息(单表) /// /// 物料号信息 /// 插入行数 public int InsertFisPlan(FISPlan model) { int count = 0; try { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 count = session.Insert(model); } return count; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "物料号信息数据层-插入信息" }); throw; } } #endregion #region 插入信息 /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public int InsertRecord(FISPlanRecord record) { int no = 0; try { if (BaseSession != null) { //插入基本信息 no = BaseSession.Insert(record); } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { //插入基本信息 no = session.Insert(record); } } return no; } catch (Exception ex) { throw ex; } } #endregion #region 配置设备人员 #region 配置设备人员 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage FisPlanRecordList(FISPlanRecord condition, DataPage page) { string sql = ""; List parameters = new List(); try { sql = this.GetFisPlanRecordSql(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) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "订单信息数据层-获取列表" }); throw; } } #endregion #region 获取查询语句 /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetFisPlanRecordSql(FISPlanRecord condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT P.PID "); sqlBuilder.AppendLine(" ,P.MID "); sqlBuilder.AppendLine(" ,P.PLAN_NO "); sqlBuilder.AppendLine(" ,P.MATERIAL_CODE "); sqlBuilder.AppendLine(" ,P.PLAN_QTY "); sqlBuilder.AppendLine(" ,P.OPERATION_TYPE "); sqlBuilder.AppendLine(" ,P.CREATEUSER "); sqlBuilder.AppendLine(" ,P.CREATEDATE ");; sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME "); sqlBuilder.AppendLine(" FROM T_AW_FISPLANRECORD P "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=P.CREATEUSER "); //查询条件 if (string.IsNullOrEmpty(condition.MID) == false) { whereBuilder.Append(" AND P.MID= @MID "); parameters.Add(new DataParameter { ParameterName = "MID", DataType = DbType.String, Value = condition.PLAN_NO }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion #endregion #region 计划管理操作记录 /// /// 插入计划管理操作记录 /// public int InsertOrderPlanTrace(IDataSession Bsession,OrderPlan model,string operatType) { try { var opt=new OrderPlanTrace { PID = Guid.NewGuid().ToString(), FACTORY_CODE = model.FACTORY_CODE, PLAN_NO = model.PLAN_NO , PLAN_SEQ = model.PLAN_SEQ , PLAN_STATE = model.PLAN_STATE , MATERIAL_CODE = model.MATERIAL_CODE , MACHINECODDE = model.MACHINECODDE , PBOM_CODE = model.PBOM_CODE , ROUTE_CODE = model.ROUTE_CODE , REMARK = model.REMARK , QTY = model.QTY , COMPLETE_QTY = model.COMPLETE_QTY , PLAN_DATE = model.PLAN_DATE , SHIFT_CODE = model.SHIFT_CODE , PLANSOURCE = model.PLANSOURCE , PRODUCEREQUIRE = model.PRODUCEREQUIRE , CREATEDATE = model.UPDATEDATE , CREATEUSER = model.UPDATEUSER , UPDATEDATE = model.UPDATEDATE , UPDATEUSER = model.UPDATEUSER , WORKCENTER_CODE = model.WORKCENTER_CODE , IGNORE_FISBREAK = model.IGNORE_FISBREAK , OPERATE_TYPE = operatType }; return Bsession.Insert(opt); } catch (Exception ex) { throw ex; } } public DataPage GetTraceList(OrderPlanTrace condition, DataPage page) { string sql = null; List parameters = new List(); try { sql = this.GetQuerySqlTrace(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) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "注塑信息数据层-获取列表" }); throw; } } private string GetQuerySqlTrace(OrderPlanTrace condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { //构成查询语句 sqlBuilder.AppendLine(" SELECT DISTINCT O.PID "); sqlBuilder.AppendLine(" ,O.FACTORY_CODE "); sqlBuilder.AppendLine(" ,F.FACTORY_NAME "); sqlBuilder.AppendLine(" ,O.PLAN_NO "); sqlBuilder.AppendLine(" ,O.PLAN_SEQ "); sqlBuilder.AppendLine(" ,O.PLAN_STATE "); sqlBuilder.AppendLine(" ,O.MATERIAL_CODE "); sqlBuilder.AppendLine(" ,M.MATERIAL_NAME "); sqlBuilder.AppendLine(" ,O.MACHINECODDE "); sqlBuilder.AppendLine(" ,O.PBOM_CODE "); sqlBuilder.AppendLine(" ,O.ROUTE_CODE "); sqlBuilder.AppendLine(" ,O.REMARK "); sqlBuilder.AppendLine(" ,O.QTY "); sqlBuilder.AppendLine(" ,O.COMPLETE_QTY "); sqlBuilder.AppendLine(" ,CONVERT(VARCHAR(19),O.PLAN_DATE,120) AS PLAN_DATE"); sqlBuilder.AppendLine(" ,O.SHIFT_CODE "); sqlBuilder.AppendLine(" ,P.PRODUCESHIFTNAME AS SHIFT_NAME "); sqlBuilder.AppendLine(" ,O.PLANSOURCE "); sqlBuilder.AppendLine(" ,O.PRODUCEREQUIRE "); sqlBuilder.AppendLine(" ,O.OPERATE_TYPE "); sqlBuilder.AppendLine(" ,O.CREATEUSER "); sqlBuilder.AppendLine(" ,CONVERT(VARCHAR(19),O.CREATEDATE,120) as CREATEDATE "); sqlBuilder.AppendLine(" ,O.UPDATEUSER "); sqlBuilder.AppendLine(" ,CONVERT(VARCHAR(19),O.UPDATEDATE,120) as UPDATEDATE "); sqlBuilder.AppendLine(" ,O.IGNORE_FISBREAK "); sqlBuilder.AppendLine(" ,O.FIS_ASMSETCODE "); sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME "); sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME "); sqlBuilder.AppendLine(" FROM T_PP_ORDERPLANTRACE O "); //注塑所需要的表T_PP_WORKORDER sqlBuilder.AppendLine(" LEFT JOIN T_BD_PRODUCESHIFT P ON P.PRODUCESHIFTTCODE=O.SHIFT_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_MD_FACTORY F ON F.FACTORY_CODE=O.FACTORY_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_PP_WORKORDER W ON W.ORDERPLANID=O.PID "); sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M ON M.MATERIAL_CODE=O.MATERIAL_CODE "); //sqlBuilder.AppendLine(" LEFT JOIN T_MD_WORKCELL WC ON WC.WORKCELL_CODE=PRW.WORKCELL_CODE "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=O.CREATEUSER "); sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=O.UPDATEUSER "); //whereBuilder.AppendFormat(" AND O.WORKCENTER_CODE in (select distinct WORKCENTER from T_PP_ORDERINDENTITY where ORDER_TYPE='{0}')", condition.ORDER_TYPE); //查询条件 if (string.IsNullOrEmpty(condition.FACTORY_CODE) == false) { whereBuilder.Append(" AND O.FACTORY_CODE = @FACTORY_CODE "); parameters.Add(new DataParameter { ParameterName = "FACTORY_CODE", DataType = DbType.String, Value = condition.FACTORY_CODE }); } if (string.IsNullOrEmpty(condition.WORKCENTER_CODE) == false) { whereBuilder.Append(" AND O.WORKCENTER_CODE = @WORKCENTER_CODE "); parameters.Add(new DataParameter { ParameterName = "WORKCENTER_CODE", DataType = DbType.String, Value = condition.WORKCENTER_CODE }); } if (string.IsNullOrEmpty(condition.PLAN_NO) == false) { whereBuilder.Append(" AND O.PLAN_NO like '%'+@PLAN_NO+'%' "); parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = condition.PLAN_NO }); } //物料号 if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false) { whereBuilder.Append(" AND O.MATERIAL_CODE = @MATERIAL_CODE "); parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE }); } //工艺路线 if (string.IsNullOrEmpty(condition.ROUTE_CODE) == false) { whereBuilder.Append(" AND O.ROUTE_CODE = @ROUTE_CODE "); parameters.Add(new DataParameter { ParameterName = "ROUTE_CODE", DataType = DbType.String, Value = condition.ROUTE_CODE }); } //班次编码 if (string.IsNullOrEmpty(condition.SHIFT_CODE) == false) { whereBuilder.Append(" AND O.SHIFT_CODE = @SHIFT_CODE "); parameters.Add(new DataParameter { ParameterName = "SHIFT_CODE", DataType = DbType.String, Value = condition.SHIFT_CODE }); } //设备 if (string.IsNullOrEmpty(condition.MACHINECODDE) == false) { whereBuilder.Append(" AND O.MACHINECODDE = @MACHINECODDE "); parameters.Add(new DataParameter { ParameterName = "MACHINECODDE", DataType = DbType.String, Value = condition.MACHINECODDE }); } //计划时间 if (condition.PLANTIMESTART != DateTime.MinValue) { whereBuilder.Append(" AND O.PLAN_DATE >= @PLANTIMESTART"); parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART }); } if (condition.PLANTIMEEND != DateTime.MinValue) { whereBuilder.Append(" AND O.PLAN_DATE <= @PLANTIMEEND"); parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } public DataTable GetExportDataTrace(OrderPlanTrace model) { DataTable dt = null; string sql = null; List parameters = new List(); try { //构成查询语句 sql = this.GetQuerySqlTrace(model, ref parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { dt = session.GetTable(sql, parameters.ToArray()); dt.TableName = "OrderPlanExp"; } return dt; } catch (Exception ex) { throw ex; } } #endregion } }