/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:SmartDeviceLogic.cs * 2.功能描述:接收智能设备请求。 * 编辑履历: * 作者 日期 版本 修改内容 * 陈晓野 2018/10/25 1.00 新建 *******************************************************************************/ using System; using System.Data; using Dongke.IBOSS.PRD.Basics.DataAccess; using Dongke.IBOSS.PRD.Service.DataModels; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.Basics.BaseResources; using Oracle.ManagedDataAccess.Client; namespace Dongke.IBOSS.PRD.Service.SmartDeviceService { /// /// 处理智能设备请求 /// public class SmartDeviceLogic { /// /// 验证连接信息 /// /// /// /// public static DataTable CheckUserCode(string accountcode, string usercode) { IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); try { con.Open(); string sqlString = "SELECT a.accountid, a.accountcode, u.userid, u.usercode, u.username\n" + " FROM tp_mst_user u\n" + " INNER JOIN tp_mst_account a\n" + " ON a.accountid = u.accountid\n" + " WHERE u.valueflag = '1'\n" + " AND u.usercode = :usercode\n" + " AND a.accountcode = :accountcode"; OracleParameter[] paras = new OracleParameter[] { new OracleParameter(":usercode",OracleDbType.Varchar2, usercode,ParameterDirection.Input), new OracleParameter(":accountcode",OracleDbType.Varchar2, accountcode,ParameterDirection.Input), }; DataTable userInfo = con.GetSqlResultToDt(sqlString, paras); if (userInfo == null || userInfo.Rows.Count == 0) { return null; } return userInfo; } catch (Exception ex) { throw ex; } finally { if (con.ConnState == ConnectionState.Open) { con.Close(); } } } //xuwei add 2019-11-15 增加 plc 的 注浆 登窑 入窑 卸窑 方法 /// /// 通过 accountCode 和 userCode 自动从系统获取userinfo 用来通过原业务逻辑验证 /// /// /// /// public static SUserInfo getUserInfoByDoLogin(string acountCode,string userCode) { SUserInfo sUser = new SUserInfo(); #region 直接从库里读取密码备用 IDBConnection conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); conn.Open(); string password = conn.GetSqlResultToStr($@" SELECT PASSWORD FROM TP_MST_USER WHERE ACCOUNTCODE = '{acountCode}' AND USERCODE = '{userCode}' "); conn.Close(); #endregion #region 设置登录参数 LoginRequestEntity para = new LoginRequestEntity(); para.AccountCode = acountCode; para.UserCode = userCode; para.Password = password; para.ComputerName = "PLC"; para.IPAddress = "0.0.0.0"; para.MACAddress = "00:00:00:00:00:00"; para.SessionKey = null; #endregion #region 调用标准登录接口获取UserInfo 参数 activeType 0 pc登录 1 移动端登录 LoginResultEntity result = DKIBOSSPRDLogic.DKIBOSSPRDLogic.DoLogin(para, "0"); sUser.AccountCode = result.CurrentUserEntity.AccountCode; sUser.AccountID = result.CurrentUserEntity.AccountID; sUser.ComputerName = para.ComputerName; sUser.IPAddress = para.IPAddress; sUser.MACAddress = para.MACAddress; sUser.OrganizationCode = result.CurrentUserEntity.OrganizationCode; sUser.OrganizationID = result.CurrentUserEntity.OrganizationID; sUser.SessionKey = result.CurrentUserEntity.SessionKey; sUser.UserCode = result.CurrentUserEntity.UserCode; sUser.UserID = result.CurrentUserEntity.UserID; #endregion return sUser; } /// /// 通过 accountCode 和 userCode 获取 userinfo /// /// /// /// public static SUserInfo getUserInfo(string accountCode,string userCode) { SUserInfo sUser = new SUserInfo(); DataTable dt = CheckUserCode(accountCode, userCode); if(dt.Rows.Count>0) { sUser.AccountCode = accountCode; sUser.AccountID = Convert.ToInt32(dt.Rows[0]["accountid"]); sUser.UserCode = userCode; sUser.UserID = Convert.ToInt32(dt.Rows[0]["userid"]); } return sUser; } /// /// 注浆 /// /// /// /// /// public static ServiceResultEntity SetGroutingLineDetail(string accountCode, string userCode, string groutingData) { return PDAModuleLogic.PDAModuleLogic.SetGroutingLineDetail(groutingData, getUserInfo(accountCode, userCode)); } /// /// 登窑 入窑 卸窑 /// /// /// /// /// /// /// public static ServiceResultEntity AddWorkPieceKiln(string accountCode, string userCode, int procedureID, DataTable barcodeTable, out ProcedureEntity procedureInfo) { ServiceResultEntity sre = new ServiceResultEntity(); DataTable dt = PMModuleLogic.PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, getUserInfo(accountCode, userCode), out procedureInfo); if(dt.Rows.Count>0) { sre.Status = dt.Rows[0]["out_errMsg"].ToString() == "" ? Constant.ServiceResultStatus.Success : Constant.ServiceResultStatus.Other; sre.Result = dt.Rows[0]["out_errMsg"].ToString(); dt.TableName = "result"; sre.Data.Tables.Add(dt); } return sre; } //xuwei end } }