/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:PMModuleLogicNew.cs * 2.功能描述:生产管理服务端业务逻辑 * 编辑履历: * 作者 日期 版本 修改内容 * 陈晓野 2015/03/21 1.00 新建 *******************************************************************************/ using System; using System.Collections.Generic; using System.Data; using System.Text; using Oracle.ManagedDataAccess.Client; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Basics.DataAccess; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.Service.DataModels; namespace Dongke.IBOSS.PRD.Service.PMModuleLogic { /// /// 生产管理服务端业务逻辑 /// public static class PMModuleLogicNew { #region 注浆管理 #region 注浆登记 /// /// 取得FPM0101画面(注浆登记)的查询数据 /// /// 多个注浆id(用[,]分开) /// 登录用户信息 /// 查询结果 public static DataSet GetFPM0101SData(string ids, SUserInfo user) { IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); try { con.Open(); List parameters = new List(); StringBuilder sql = new StringBuilder(GetFPM0101SSQL()); parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input)); parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input)); if (!string.IsNullOrWhiteSpace(ids)) { ids = "," + ids + ","; sql.Append(" AND INSTR(:GroutingDailyIDs, ',' || GroutingDailyID || ',') > 0"); parameters.Add(new OracleParameter(":GroutingDailyIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input)); } sql.Append(" ORDER BY GDD.GroutingLineCode, GDD.GroutingDate, GDD.GroutingDailyID, GDD.GroutingMouldCode"); DataSet ds = con.GetSqlResultToDs(sql.ToString(), parameters.ToArray()); return ds; } catch (Exception ex) { throw ex; } finally { if (con.ConnState == ConnectionState.Open) { con.Close(); } } } /// /// 取得FPM0101画面(注浆登记)的查询数据 /// /// 查询条件 /// 登录用户信息 /// 查询结果 public static DataSet GetFPM0101SData(FPM0101_SE se, SUserInfo user) { IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); try { con.Open(); List parameters = new List(); StringBuilder sql = new StringBuilder(GetFPM0101SSQL()); parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input)); parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input)); if (se != null) { // 成型线编码 if (!string.IsNullOrEmpty(se.GroutingLineCode)) { sql.Append(" AND INSTR(GDD.GroutingLineCode, :GroutingLineCode) > 0"); parameters.Add(new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, se.GroutingLineCode, ParameterDirection.Input)); } // 成型线名称 if (!string.IsNullOrEmpty(se.GroutingLineName)) { sql.Append(" AND INSTR(GDD.GroutingLineName, :GroutingLineName) > 0"); parameters.Add(new OracleParameter(":GroutingLineName", OracleDbType.NVarchar2, se.GroutingLineName, ParameterDirection.Input)); } // 成型线类别 if (se.GMouldTypeID.HasValue) { sql.Append(" AND GD.GMouldTypeID = :GMouldTypeID"); parameters.Add(new OracleParameter(":GMouldTypeID", OracleDbType.Int32, se.GMouldTypeID.Value, ParameterDirection.Input)); } // 注浆日期-开始 if (se.GroutingDateBegin.HasValue) { sql.Append(" AND GDD.GroutingDate >= :GroutingDateBegin"); parameters.Add(new OracleParameter(":GroutingDateBegin", OracleDbType.Date, se.GroutingDateBegin.Value, ParameterDirection.Input)); } // 注浆日期-结束 if (se.GroutingDateEnd.HasValue) { sql.Append(" AND GDD.GroutingDate <= :GroutingDateEnd"); parameters.Add(new OracleParameter(":GroutingDateEnd", OracleDbType.Date, se.GroutingDateEnd.Value, ParameterDirection.Input)); } // 注浆模具编号 if (!string.IsNullOrEmpty(se.GroutingMouldCode)) { sql.Append(" AND INSTR(GDD.GroutingMouldCode, :GroutingMouldCode) > 0"); parameters.Add(new OracleParameter(":GroutingMouldCode", OracleDbType.NVarchar2, se.GroutingMouldCode, ParameterDirection.Input)); } // 产品编号 if (!string.IsNullOrEmpty(se.GoodsCode)) { sql.Append(" AND INSTR(GDD.GoodsCode, :GoodsCode) > 0"); parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, se.GoodsCode, ParameterDirection.Input)); } // 产品名称 if (!string.IsNullOrEmpty(se.GoodsName)) { sql.Append(" AND INSTR(GDD.GoodsName, :GoodsName) > 0"); parameters.Add(new OracleParameter(":GoodsName", OracleDbType.NVarchar2, se.GoodsName, ParameterDirection.Input)); } // 备注 if (!string.IsNullOrEmpty(se.Remarks)) { sql.Append(" AND INSTR(GDD.GoodsName, :GoodsName) > 0"); parameters.Add(new OracleParameter(":GoodsName", OracleDbType.NVarchar2, se.GoodsName, ParameterDirection.Input)); } // 注浆标识 if (!string.IsNullOrEmpty(se.GroutingFlag)) { sql.Append(" AND GDD.GroutingFlag = :GroutingFlag"); parameters.Add(new OracleParameter(":GroutingFlag", OracleDbType.Char, se.GroutingFlag, ParameterDirection.Input)); } // 损坯标识 if (!string.IsNullOrEmpty(se.ScrapFlag)) { sql.Append(" AND GDD.ScrapFlag = :ScrapFlag"); parameters.Add(new OracleParameter(":ScrapFlag", OracleDbType.Char, se.ScrapFlag, ParameterDirection.Input)); } } sql.Append(" ORDER BY GDD.GroutingDate, GDD.GroutingLineCode, GDD.GroutingDailyID, GDD.GroutingMouldCode"); DataSet ds = con.GetSqlResultToDs(sql.ToString(), parameters.ToArray()); return ds; } catch (Exception ex) { throw ex; } finally { if (con.ConnState == ConnectionState.Open) { con.Close(); } } } /// /// 获取查询sql /// /// sql private static string GetFPM0101SSQL() { string selSql = "SELECT GDD.GroutingDailyDetailID," + " GDD.GroutingDailyID," + " GDD.GroutingLineDetailID," + " GDD.GroutingLineID," + // 成型线编码 " GDD.GroutingLineCode," + // 成型线名称 " GDD.GroutingLineName," + // 注浆日期 " GDD.GroutingDate," + // 成型工号 " GDD.UserCode," + // 产品编码 " GDD.GoodsCode," + // 产品名称 20210728 modify lsq goodsname不取TP_PM_GroutingDailyDetail,取TP_MST_GOODS的 " G.GoodsName," + // 注浆线模具编码 " GDD.GroutingMouldCode," + // 模具状态 " GMS.GMouldStatusName," + // 注浆标识 " GDD.GroutingFlag," + // 未注浆原因 " DD.DictionaryValue AS NoGroutingRreason," + // 注浆次数 " GDD.GroutingCount," + // 损坯标识 " GDD.ScrapFlag," + // 备注 " GDD.Remarks," + // 成型线类型 " GMT.GMouldTypeName," + // 绑定条码" + " GP.BarCode," + // 创建时间 " GDD.CreateTime," + // 创建工号 " U.UserName AS Createuser" + // 注浆日报明细表 " FROM TP_PM_GroutingDailyDetail GDD" + //20210728 modify lsq goodsname不取TP_PM_GroutingDailyDetail,取TP_MST_GOODS的 //BEGIN " INNER JOIN TP_MST_Goods G" + " ON G.GoodsID = GDD.GoodsID" + //END // 注浆日报 " INNER JOIN TP_PM_GroutingDaily GD" + " ON GD.GroutingDailyID = GDD.GroutingDailyID" + // 成型线类型 " INNER JOIN TP_MST_GMouldType GMT" + " ON GD.GMouldTypeID = GMT.GMouldTypeID" + // 注浆条码 " LEFT JOIN TP_PM_GroutingProduct GP" + " ON GP.GroutingDailyDetailID = GDD.GroutingDailyDetailID" + // 模具状态 " INNER JOIN TP_SYS_GMouldStatus GMS" + " ON GMS.GMouldStatusID = GDD.GMouldStatus" + // 未注浆原因 " LEFT JOIN TP_MST_DataDictionary DD" + " ON DD.DictionaryID = GDD.NoGroutingRreason" + // 创建工号 " INNER JOIN TP_MST_User U" + " ON U.UserID = GDD.CreateUserID" + // 账套 " WHERE GDD.AccountID = :AccountID" + " AND GDD.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" + // 成型线操作权限 " AND EXISTS (SELECT UP.PurviewID" + " FROM TP_MST_UserPurview UP" + " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateGroutingLine + "'" + " AND UP.PurviewID = GDD.GroutingLineID" + " AND UP.UserId = :UPUserId)"; return selSql; } #endregion 注浆登记 #endregion 注浆管理 } }