| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- /*******************************************************************************
- * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:PCModuleLogic.cs
- * 2.功能描述:生产配置数据库访问类
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 陈冰 2014/09/3 1.00 新建
- *******************************************************************************/
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Text;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels.ConfigModule;
- using Oracle.DataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.PCModuleLogic
- {
- /// <summary>
- /// 生产配置数据库访问类
- /// </summary>
- public partial class PCModuleLogic
- {
- #region 生产线配置
- /// <summary>
- /// 获得生产线配置
- /// </summary>
- /// <param name="lineID">生产线ID</param>
- /// <returns>DataSet</returns>
- public static DataSet GetProductionLineDetail(int lineID)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("productionLineID",OracleDbType.Int32,lineID,ParameterDirection.Input),
- new OracleParameter("rs_line",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedure",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedureFlow",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedureGoods",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedureUser",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedureDefect",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_defectProcedureJobs",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_procedureKiln",OracleDbType.RefCursor,ParameterDirection.Output),
- };
- DataSet ds = con.ExecStoredProcedure("PRO_PC_GetProductionLineDetail", paras);
- // 命名 方便客户端取值
- ds.Tables[0].TableName = "lineTable";
- ds.Tables[1].TableName = "procedureTable";
- ds.Tables[2].TableName = "procedureFlowTable";
- ds.Tables[3].TableName = "procedureGoodsTable";
- ds.Tables[4].TableName = "procedureUserTable";
- ds.Tables[5].TableName = "procedureDefectTable";
- ds.Tables[6].TableName = "defectProcedureJobsTable";
- ds.Tables[7].TableName = "procedureKilnTable";
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- /// <summary>
- /// 查询生产线配置
- /// </summary>
- /// <param name="productionLine">生产线实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>DataSet</returns>
- public static DataSet SearchProductionLine(ProductionLineEntity productionLine, SUserInfo sUserInfo)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- string str_vauleFlags = null;
- if (productionLine.ValueFlags != null && productionLine.ValueFlags.Length > 0)
- {
- foreach (var item in productionLine.ValueFlags)
- {
- str_vauleFlags += "," + item;
- }
- str_vauleFlags = str_vauleFlags.Substring(1);
- }
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("productionLineID",OracleDbType.Int32,productionLine.ProductionLineID,ParameterDirection.Input),
- new OracleParameter("productionLineCode",OracleDbType.NVarchar2,productionLine.ProductionLineCode,ParameterDirection.Input),
- new OracleParameter("productionLineName",OracleDbType.NVarchar2,productionLine.ProductionLineName,ParameterDirection.Input),
- new OracleParameter("remarks",OracleDbType.NVarchar2,productionLine.Remarks,ParameterDirection.Input),
- new OracleParameter("accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter("valueFlags",OracleDbType.NVarchar2,str_vauleFlags,ParameterDirection.Input),
- new OracleParameter("rs_result",OracleDbType.RefCursor,ParameterDirection.Output),
- new OracleParameter("rs_resultDetail",OracleDbType.RefCursor,ParameterDirection.Output),
- };
- DataSet ds = con.ExecStoredProcedure("PRO_PC_SearchProductionLine", paras);
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- #endregion
- #region 班次配置
- /// <summary>
- /// 获取班次配置信息
- /// </summary>
- /// <param name="searchEntity">班次配配置查询实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>DataSet</returns>
- public static DataSet SearchClassesSetting(SearchClassesSettingEntity searchEntity, SUserInfo sUserInfo)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter("in_accountId",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter("in_userid",OracleDbType.Int32,searchEntity.UserID,ParameterDirection.Input),
- new OracleParameter("in_userCode",OracleDbType.Varchar2,searchEntity.UserCode,ParameterDirection.Input),
- new OracleParameter("in_startAccountDate",OracleDbType.Date,searchEntity.StartAccountDate,ParameterDirection.Input),
- new OracleParameter("in_endAccountDate",OracleDbType.Date,searchEntity.EndAccountDate,ParameterDirection.Input),
- new OracleParameter("in_remarks",OracleDbType.Varchar2,searchEntity.Remarks,ParameterDirection.Input),
- new OracleParameter("in_valueFlag",OracleDbType.Int32,searchEntity.ValueFlag,ParameterDirection.Input),
- new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
- };
- DataSet ds = con.ExecStoredProcedure("PRO_PC_SearchClassesSetting", paras);
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- /// <summary>
- /// 获取指定班次配置明细信息
- /// </summary>
- /// <param name="classesSettingID">班次配置Id</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>DataSet</returns>
- /// <remarks>
- /// 作者 日期 内容
- /// 冯雪 2014-9-23 新建
- /// </remarks>
- public static DataSet SearchClassesDetail(int classesSettingID, SUserInfo sUserInfo)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- string strSql = " SELECT classesDetail.ClassesSettingID,classesDetail.UserID,classesDetail.userCode,"
- + " classesDetail.StaffID,classesDetail.Createtime,"
- //+ " classesDetail.UjobsId jobs,classesDetail.SjobsId,classesDetail.Remarks,classesDetail.CreateUserID,"
- + " classesDetail.UjobsId UjobsId,classesDetail.SjobsId jobs,classesDetail.Remarks,classesDetail.CreateUserID,"
- + " classesDetail.UpdateTime,MUser.Username mUsername,CUser.Username createUserName,"
- + " Jobs.Jobsname,Muser.Organizationid,Org.Organizationname,Staff.Staffname,Staff.Staffcode,"
- + " status.staffstatusname AS staffStatusName,classesDetail.staffStatus,UJobs.JobsName as UJobsName,classesDetail.Ujobsid as UJobsId "
- + " FROM TP_PC_ClassesDetail classesDetail "
- + " LEFT JOIN TP_MST_User MUser ON MUser.UserId = classesDetail.UserID "
- + " LEFT JOIN TP_MST_User CUser ON CUser.UserId = classesDetail.CreateUserID "
- + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = classesDetail.SjobsId "
- + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Muser.Organizationid "
- + " LEFT JOIN TP_HR_Staff Staff ON staff.staffid = classesDetail.Staffid "
- + " LEFT JOIN TP_MST_UserStaff userStaff ON classesDetail.STAFFID = userStaff.Staffid and classesDetail.Userid = userStaff.UserId"
- + " LEFT JOIN TP_MST_JOBS UJobs ON classesDetail.Ujobsid = UJobs.Jobsid"
- + " Inner JOIN TP_SYS_StaffStatus status on classesDetail.Staffstatus = status.staffstatusid"
- + " WHERE classesDetail.AccountID = :accountID "
- + " AND classesDetail.ClassesSettingID = :classesSettingID ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":classesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- };
- DataSet ds = con.GetSqlResultToDs(strSql, paras);
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- #endregion
- /// <summary>
- /// 生产配置删除节点时,此节点是否在产
- /// </summary>
- /// <param name="procedureID">工序ID</param>
- /// <returns>bool</returns>
- /// <remarks>
- /// </remarks>
- public static bool GetAllowDelete(int procedureID)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- string strSql = " select 1 from TP_PM_InProduction where FlowProcedureID=:procedureID";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":procedureID",OracleDbType.Int32,procedureID,ParameterDirection.Input),
- };
- DataSet ds = con.GetSqlResultToDs(strSql, paras);
- if (ds != null && ds.Tables[0].Rows.Count > 0) // 有在产信息
- {
- return true;
- }
- return false;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- /// <summary>
- /// 取得FPM2105画面(注浆登记)的查询数据
- /// </summary>
- /// <param name="ids">多个注浆id(用[,]分开)</param>
- /// <param name="user">登录用户信息</param>
- /// <returns>查询结果</returns>
- public static ServiceResultEntity GetFPM2105Data(GroutingDailyEntity se, SUserInfo user)
- {
- IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- con.Open();
- List<OracleParameter> parameters = new List<OracleParameter>();
- StringBuilder sql = new StringBuilder(GetFPM2105SQL());
- 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)
- {
- // 成型线ID
- if (se.GroutingLineID.HasValue)
- {
- sql.Append(" AND GD.GroutingLineID = :GroutingLineID");
- parameters.Add(new OracleParameter(":GroutingLineID", OracleDbType.Int32, se.GroutingLineID.Value, ParameterDirection.Input));
- }
- // 注浆日期
- if (se.GroutingDate.HasValue)
- {
- sql.Append(" AND GD.GroutingDate = :GroutingDate");
- parameters.Add(new OracleParameter(":GroutingDate", OracleDbType.Date, se.GroutingDate.Value.Date, ParameterDirection.Input));
- //sql.Append(" AND GD.GroutingDate <= :GroutingDateEnd");
- //parameters.Add(new OracleParameter(":GroutingDateEnd", OracleDbType.Date, se.GroutingDate.Value.AddDays(1).AddMinutes(-1), ParameterDirection.Input));
- }
- // 注浆批次
- if (se.GroutingBatchNo.HasValue)
- {
- sql.Append(" AND GDD.GroutingBatchNo = :GroutingBatchNo");
- parameters.Add(new OracleParameter(":GroutingBatchNo", OracleDbType.Int32, se.GroutingBatchNo.Value, ParameterDirection.Input));
- }
-
- }
- sql.Append(" ORDER BY GDD.GroutingDate, GDD.GroutingLineCode, GDD.GroutingDailyID, GDD.GroutingMouldCode");
- DataTable data = con.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
- ServiceResultEntity sre = new ServiceResultEntity();
- if (data == null || data.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- return sre;
- }
- sre.Data = new DataSet();
- sre.Data.Tables.Add(data);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (con.ConnState == ConnectionState.Open)
- {
- con.Close();
- }
- }
- }
- /// <summary>
- /// 获取查询sql
- /// </summary>
- /// <returns>sql</returns>
- private static string GetFPM2105SQL()
- {
- string selSql =
- "SELECT 0 as Sel," +
- " GDD.GroutingDailyID," +
- " GDD.GroutingLineDetailID," +
- " GDD.GroutingDailyDetailID," +
- " GDD.GroutingLineID," +
- // 成型线编码
- " GDD.GroutingLineCode," +
- // 成型线名称
- " GDD.GroutingLineName," +
- // 注浆日期
- " GDD.GroutingDate," +
- // 成型工号
- " GDD.UserCode," +
- // 产品编码
- " GDD.GoodsCode," +
- // 产品名称
- " GDD.GoodsName," +
- // 注浆线模具编码
- " GDD.GroutingMouldCode," +
- // 模具状态
- " GMS.GMouldStatusName," +
- // 注浆标识
- " GDD.GroutingFlag," +
- // 未注浆原因
- " DD.DictionaryValue AS NoGroutingRreason," +
- // 注浆次数
- " GDD.GroutingCount," +
- // 注浆次数
- " GDD.GroutingBatchNo," +
- // 损坯标识
- " GDD.ScrapFlag," +
- // 备注
- " GDD.Remarks," +
- // 成型线类型
- " GMT.GMouldTypeName," +
- // 绑定条码
- " GDD.BarCode," +
- // 创建时间
- " GDD.CreateTime," +
- // 创建工号
- " U.UserName AS Createuser" +
- // 注浆日报
- " FROM TP_PM_GroutingDaily GD" +
- // 注浆日报明细表
- " INNER JOIN TP_PM_GroutingDailyDetail GDD" +
- " ON GD.GroutingDailyID = GDD.GroutingDailyID" +
- // 成型线类型
- " INNER JOIN TP_MST_GMouldType GMT" +
- " ON GD.GMouldTypeID = GMT.GMouldTypeID" +
- // 模具状态
- " INNER JOIN TP_SYS_GMouldStatus GMS" +
- " ON GMS.GMouldStatusID = GDD.GMouldStatus" +
- // 创建工号
- " INNER JOIN TP_MST_User U" +
- " ON U.UserID = GDD.CreateUserID" +
- // 未注浆原因
- " LEFT JOIN TP_MST_DataDictionary DD" +
- " ON DD.DictionaryID = GDD.NoGroutingRreason" +
- //// 成型线操作权限
- //" INNER JOIN (SELECT UP.PurviewID" +
- //" FROM TP_MST_UserPurview UP" +
- //" WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateGroutingLine + "'" +
- //" AND UP.UserId = :UPUserId) UP" +
- //" ON UP.PurviewID = GD.GroutingLineID" +
- // 账套
- " WHERE GD.AccountID = :AccountID" +
- " AND GD.ValueFlag = 1";
- return selSql;
- }
- }
- }
|