/******************************************************************************* * 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-19 增加 按窑车号 查询窑车数据 方法 public static DataTable getKilnCarByCode(string kilnCarCode) { IDBConnection conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); conn.Open(); DataTable kilnCar = conn.GetSqlResultToDt($@" SELECT k.KILNID, k.KILNCODE, k.KILNNAME, c.KILNCARID, c.KILNCARCODE, c.KILNCARNAME FROM TP_MST_KILN k LEFT JOIN TP_MST_KILNCAR c ON k.KILNID = c.KILNID WHERE c.VALUEFLAG = '1' AND c.KILNCARCODE = '{kilnCarCode}' "); conn.Close(); return kilnCar; } //xuwei end //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 lineCode, string groutingData, SUserInfo sUserInfo) { IDBConnection conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); string sqlString = "select t.userid, u.usercode, u.username, t.groutinglineid\n" + " from tp_pc_groutingline t\n" + " inner join tp_mst_user u\n" + " on u.userid = t.userid\n" + " where t.groutinglinecode = :lineCode\n" + " and t.valueflag='1'\n" + " and t.gmouldstatus = 1"; OracleParameter[] paras = new OracleParameter[] { new OracleParameter(":lineCode", lineCode), }; DataTable dt = conn.GetSqlResultToDt(sqlString, paras); if (dt == null || dt.Rows.Count == 0) { ServiceResultEntity sre = new ServiceResultEntity(); sre.Status = Constant.ServiceResultStatus.NoSearchResults; sre.Message = $"成型线{lineCode}不存在或当前状态不能注浆"; return sre; } sUserInfo.UserID = Convert.ToInt32(dt.Rows[0]["userid"]); sUserInfo.UserCode = dt.Rows[0]["usercode"] + ""; return PDAModuleLogic.PDAModuleLogic.SetGroutingLineDetail(groutingData, sUserInfo); } /// /// 登窑 入窑 卸窑 /// /// /// /// /// /// /// public static DataTable AddWorkPieceKiln(int procedureID, DataTable barcodeTable, SUserInfo sUserInfo) { ProcedureEntity procedureInfo = null; ServiceResultEntity sre = new ServiceResultEntity(); return PMModuleLogic.PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo); } //xuwei end #region 恒洁三水三车间对接乾润工序用 /// /// 获取条码返回数据 /// /// /// public static DataTable GetGroutingdailydetail(string barcode) { IDBConnection conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString); try { string sqlString = "SELECT \n" + " t.barcode\n" + " ,t.goodscode\n" + " ,t.materialcode\n" + " ,g.goodstypeid\n" + " ,g.goods_line_type\n" + " ,t.goodsleveltypeid\n" + " ,t.GROUTINGLINECODE\n" + " ,t.GROUTINGLINENAME\n" + " FROM tp_pm_groutingdailydetail t\n" + " INNER JOIN tp_mst_goods g\n" + " ON g.goodsid = t.goodsid\n" + " WHERE t.barcode = :barcode"; OracleParameter[] paras = new OracleParameter[] { new OracleParameter(":barcode", barcode), }; DataTable data = conn.GetSqlResultToDt(sqlString, paras); return data; } catch (Exception ex) { throw ex; } finally { conn.Close(); } } //public static string AddSmartLog(string ) //{ //} #endregion } }