Beispiel #1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public decimal Add(Maticsoft.Model.SMT_CARD_RECORDS model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into SMT_CARD_RECORDS(");
            strSql.Append("CTRLR_SN,RECORD_INDEX,RECORD_TYPE,RECORD_REASON,RECORD_DESC,RECORD_DATE,CARD_NO,IS_ENTER,IS_ALLOW,CTRLR_DOOR_INDEX,CTRLR_ID,DOOR_ID,STAFF_ID)");
            strSql.Append(" values (");
            strSql.Append("@CTRLR_SN,@RECORD_INDEX,@RECORD_TYPE,@RECORD_REASON,@RECORD_DESC,@RECORD_DATE,@CARD_NO,@IS_ENTER,@IS_ALLOW,@CTRLR_DOOR_INDEX,@CTRLR_ID,@DOOR_ID,@STAFF_ID)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@CTRLR_SN",         SqlDbType.VarChar,   100),
                new SqlParameter("@RECORD_INDEX",     SqlDbType.Decimal,     9),
                new SqlParameter("@RECORD_TYPE",      SqlDbType.VarChar,    15),
                new SqlParameter("@RECORD_REASON",    SqlDbType.VarChar,    30),
                new SqlParameter("@RECORD_DESC",      SqlDbType.NVarChar,  400),
                new SqlParameter("@RECORD_DATE",      SqlDbType.DateTime),
                new SqlParameter("@CARD_NO",          SqlDbType.VarChar,   100),
                new SqlParameter("@IS_ENTER",         SqlDbType.Bit,         1),
                new SqlParameter("@IS_ALLOW",         SqlDbType.Bit,         1),
                new SqlParameter("@CTRLR_DOOR_INDEX", SqlDbType.TinyInt,     1),
                new SqlParameter("@CTRLR_ID",         SqlDbType.Decimal,     9),
                new SqlParameter("@DOOR_ID",          SqlDbType.Decimal,     9),
                new SqlParameter("@STAFF_ID",         SqlDbType.Decimal, 9)
            };
            parameters[0].Value  = model.CTRLR_SN;
            parameters[1].Value  = model.RECORD_INDEX;
            parameters[2].Value  = model.RECORD_TYPE;
            parameters[3].Value  = model.RECORD_REASON;
            parameters[4].Value  = model.RECORD_DESC;
            parameters[5].Value  = model.RECORD_DATE;
            parameters[6].Value  = model.CARD_NO;
            parameters[7].Value  = model.IS_ENTER;
            parameters[8].Value  = model.IS_ALLOW;
            parameters[9].Value  = model.CTRLR_DOOR_INDEX;
            parameters[10].Value = model.CTRLR_ID;
            parameters[11].Value = model.DOOR_ID;
            parameters[12].Value = model.STAFF_ID;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToDecimal(obj));
            }
        }
Beispiel #2
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Maticsoft.Model.SMT_CARD_RECORDS GetModel(decimal ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,CTRLR_SN,RECORD_INDEX,RECORD_TYPE,RECORD_REASON,RECORD_DESC,RECORD_DATE,CARD_NO,IS_ENTER,IS_ALLOW,CTRLR_DOOR_INDEX,CTRLR_ID,DOOR_ID,STAFF_ID from SMT_CARD_RECORDS ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Decimal)
            };
            parameters[0].Value = ID;

            Maticsoft.Model.SMT_CARD_RECORDS model = new Maticsoft.Model.SMT_CARD_RECORDS();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Beispiel #3
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public Maticsoft.Model.SMT_CARD_RECORDS DataRowToModel(DataRow row)
 {
     Maticsoft.Model.SMT_CARD_RECORDS model = new Maticsoft.Model.SMT_CARD_RECORDS();
     if (row != null)
     {
         if (row["ID"] != null && row["ID"].ToString() != "")
         {
             model.ID = decimal.Parse(row["ID"].ToString());
         }
         if (row["CTRLR_SN"] != null)
         {
             model.CTRLR_SN = row["CTRLR_SN"].ToString();
         }
         if (row["RECORD_INDEX"] != null && row["RECORD_INDEX"].ToString() != "")
         {
             model.RECORD_INDEX = decimal.Parse(row["RECORD_INDEX"].ToString());
         }
         if (row["RECORD_TYPE"] != null)
         {
             model.RECORD_TYPE = row["RECORD_TYPE"].ToString();
         }
         if (row["RECORD_REASON"] != null)
         {
             model.RECORD_REASON = row["RECORD_REASON"].ToString();
         }
         if (row["RECORD_DESC"] != null)
         {
             model.RECORD_DESC = row["RECORD_DESC"].ToString();
         }
         if (row["RECORD_DATE"] != null && row["RECORD_DATE"].ToString() != "")
         {
             model.RECORD_DATE = DateTime.Parse(row["RECORD_DATE"].ToString());
         }
         if (row["CARD_NO"] != null)
         {
             model.CARD_NO = row["CARD_NO"].ToString();
         }
         if (row["IS_ENTER"] != null && row["IS_ENTER"].ToString() != "")
         {
             if ((row["IS_ENTER"].ToString() == "1") || (row["IS_ENTER"].ToString().ToLower() == "true"))
             {
                 model.IS_ENTER = true;
             }
             else
             {
                 model.IS_ENTER = false;
             }
         }
         if (row["IS_ALLOW"] != null && row["IS_ALLOW"].ToString() != "")
         {
             if ((row["IS_ALLOW"].ToString() == "1") || (row["IS_ALLOW"].ToString().ToLower() == "true"))
             {
                 model.IS_ALLOW = true;
             }
             else
             {
                 model.IS_ALLOW = false;
             }
         }
         if (row["CTRLR_DOOR_INDEX"] != null && row["CTRLR_DOOR_INDEX"].ToString() != "")
         {
             model.CTRLR_DOOR_INDEX = int.Parse(row["CTRLR_DOOR_INDEX"].ToString());
         }
         if (row["CTRLR_ID"] != null && row["CTRLR_ID"].ToString() != "")
         {
             model.CTRLR_ID = decimal.Parse(row["CTRLR_ID"].ToString());
         }
         if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "")
         {
             model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString());
         }
         if (row["STAFF_ID"] != null && row["STAFF_ID"].ToString() != "")
         {
             model.STAFF_ID = decimal.Parse(row["STAFF_ID"].ToString());
         }
     }
     return(model);
 }
Beispiel #4
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Maticsoft.Model.SMT_CARD_RECORDS model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update SMT_CARD_RECORDS set ");
            strSql.Append("CTRLR_SN=@CTRLR_SN,");
            strSql.Append("RECORD_INDEX=@RECORD_INDEX,");
            strSql.Append("RECORD_TYPE=@RECORD_TYPE,");
            strSql.Append("RECORD_REASON=@RECORD_REASON,");
            strSql.Append("RECORD_DESC=@RECORD_DESC,");
            strSql.Append("RECORD_DATE=@RECORD_DATE,");
            strSql.Append("CARD_NO=@CARD_NO,");
            strSql.Append("IS_ENTER=@IS_ENTER,");
            strSql.Append("IS_ALLOW=@IS_ALLOW,");
            strSql.Append("CTRLR_DOOR_INDEX=@CTRLR_DOOR_INDEX,");
            strSql.Append("CTRLR_ID=@CTRLR_ID,");
            strSql.Append("DOOR_ID=@DOOR_ID,");
            strSql.Append("STAFF_ID=@STAFF_ID");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@CTRLR_SN",         SqlDbType.VarChar,   100),
                new SqlParameter("@RECORD_INDEX",     SqlDbType.Decimal,     9),
                new SqlParameter("@RECORD_TYPE",      SqlDbType.VarChar,    15),
                new SqlParameter("@RECORD_REASON",    SqlDbType.VarChar,    30),
                new SqlParameter("@RECORD_DESC",      SqlDbType.NVarChar,  400),
                new SqlParameter("@RECORD_DATE",      SqlDbType.DateTime),
                new SqlParameter("@CARD_NO",          SqlDbType.VarChar,   100),
                new SqlParameter("@IS_ENTER",         SqlDbType.Bit,         1),
                new SqlParameter("@IS_ALLOW",         SqlDbType.Bit,         1),
                new SqlParameter("@CTRLR_DOOR_INDEX", SqlDbType.TinyInt,     1),
                new SqlParameter("@CTRLR_ID",         SqlDbType.Decimal,     9),
                new SqlParameter("@DOOR_ID",          SqlDbType.Decimal,     9),
                new SqlParameter("@STAFF_ID",         SqlDbType.Decimal,     9),
                new SqlParameter("@ID",               SqlDbType.Decimal, 9)
            };
            parameters[0].Value  = model.CTRLR_SN;
            parameters[1].Value  = model.RECORD_INDEX;
            parameters[2].Value  = model.RECORD_TYPE;
            parameters[3].Value  = model.RECORD_REASON;
            parameters[4].Value  = model.RECORD_DESC;
            parameters[5].Value  = model.RECORD_DATE;
            parameters[6].Value  = model.CARD_NO;
            parameters[7].Value  = model.IS_ENTER;
            parameters[8].Value  = model.IS_ALLOW;
            parameters[9].Value  = model.CTRLR_DOOR_INDEX;
            parameters[10].Value = model.CTRLR_ID;
            parameters[11].Value = model.DOOR_ID;
            parameters[12].Value = model.STAFF_ID;
            parameters[13].Value = model.ID;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        //保存记录
        public void SaveRecord(decimal ctrlrId, ControllerState record)
        {
            try
            {
                Maticsoft.Model.SMT_CARD_RECORDS modelRecord = new Maticsoft.Model.SMT_CARD_RECORDS();
                modelRecord.CARD_NO          = record.cardOrNoNumber;
                modelRecord.CTRLR_DOOR_INDEX = record.doorNum;

                modelRecord.CTRLR_ID = ctrlrId;
                modelRecord.CTRLR_SN = record.sn;

                Maticsoft.BLL.SMT_DOOR_INFO bll = new Maticsoft.BLL.SMT_DOOR_INFO();

                List <Maticsoft.Model.SMT_DOOR_INFO> doors = bll.GetModelList("CTRL_ID=" + ctrlrId + " and CTRL_DOOR_INDEX=" + record.doorNum);
                if (doors.Count > 0)
                {
                    modelRecord.DOOR_ID = doors[0].ID;
                }
                else
                {
                    modelRecord.DOOR_ID = -1;
                }
                modelRecord.IS_ALLOW      = record.isAllowValid;
                modelRecord.IS_ENTER      = record.isEnterDoor;
                modelRecord.RECORD_DATE   = record.recordTime;
                modelRecord.RECORD_DESC   = AccessHelper.GetRecordReasonString(record.reasonNo);
                modelRecord.RECORD_INDEX  = record.lastRecordIndex;
                modelRecord.RECORD_REASON = record.reasonNo.ToString();
                modelRecord.RECORD_TYPE   = record.recordType.ToString();

                Maticsoft.BLL.SMT_STAFF_CARD cardBll = new Maticsoft.BLL.SMT_STAFF_CARD();

                List <Maticsoft.Model.SMT_STAFF_CARD> staffCards = cardBll.GetModelListByWGCardNo(record.cardOrNoNumber);
                if (staffCards.Count > 0)
                {
                    modelRecord.STAFF_ID = staffCards[0].STAFF_ID;
                }
                else
                {
                    modelRecord.STAFF_ID = -1;
                }
                Maticsoft.BLL.SMT_CARD_RECORDS recordBll = new Maticsoft.BLL.SMT_CARD_RECORDS();
                modelRecord.ID = recordBll.Add(modelRecord);
                switch (record.reasonNo)
                {
                case RecordReasonNo.Swipe:
                    break;

                case RecordReasonNo.Reserved2:
                    break;

                case RecordReasonNo.Reserved3:
                    break;

                case RecordReasonNo.Reserved4:
                    break;

                case RecordReasonNo.DeniedAccessPCControl:
                case RecordReasonNo.DeniedAccessNoPRIVILEGE:
                case RecordReasonNo.DeniedAccessWrongPASSWORD:
                case RecordReasonNo.DeniedAccessAntiBack:
                case RecordReasonNo.DeniedAccessMoreCards:
                case RecordReasonNo.DeniedAccessFirstCardOpen:
                case RecordReasonNo.DeniedAccessDoorSetNC:
                case RecordReasonNo.DeniedAccessInterLock:
                case RecordReasonNo.DeniedAccessLimitedTimes:
                case RecordReasonNo.DeniedAccessInvalidTimezone:
                case RecordReasonNo.DeniedAccess:
                case RecordReasonNo.PushButtonInvalidForcedLock:
                case RecordReasonNo.PushButtonInvalidNotOnLine:
                case RecordReasonNo.PushButtonInvalidInterLock:
                case RecordReasonNo.Threat:
                case RecordReasonNo.OpenTooLong:
                case RecordReasonNo.ForcedOpen:
                case RecordReasonNo.Fire:
                case RecordReasonNo.ForcedClose:
                case RecordReasonNo.GuardAgainstTheft:
                case RecordReasonNo.H7X24HourZone:
                case RecordReasonNo.EmergencyCall:
                {
                    Maticsoft.Model.SMT_ALARM_INFO alarmInfo = new Maticsoft.Model.SMT_ALARM_INFO();
                    try
                    {
                        alarmInfo.ALARM_NAME       = AccessHelper.GetRecordReasonString(record.reasonNo);
                        alarmInfo.ALARM_CONTENT    = alarmInfo.ALARM_NAME;
                        alarmInfo.ALARM_TIME       = record.recordTime;
                        alarmInfo.ALARM_TYPE       = (int)record.reasonNo;
                        alarmInfo.CARD_NO          = record.cardOrNoNumber;
                        alarmInfo.CTRLR_DOOR_INDEX = record.doorNum;
                        alarmInfo.CTRLR_ID         = ctrlrId;
                        alarmInfo.DOOR_ID          = modelRecord.DOOR_ID;
                        alarmInfo.RECORD_ID        = modelRecord.ID;
                        alarmInfo.STAFF_ID         = modelRecord.STAFF_ID;
                        Maticsoft.BLL.SMT_ALARM_INFO alarmBll = new Maticsoft.BLL.SMT_ALARM_INFO();
                        alarmInfo.ID = alarmBll.Add(alarmInfo);
                        try
                        {
                            _alarmServer.SendMessageAsync <decimal>(alarmInfo.ID, MessageType.ALARM);
                        }
                        catch (Exception ex)
                        {
                            log.Error("转发报警消息失败:Alarm Id=" + alarmInfo.ID + ",EX=" + ex.Message);
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error("报警记录保存失败:CTRLID=" + ctrlrId + ", RECORD ID=" + modelRecord.ID + ",ALARM_NAME=" + alarmInfo.ALARM_NAME, ex);
                    }
                }
                break;

                case RecordReasonNo.Reserved14:
                    break;

                case RecordReasonNo.Reserved16:
                    break;

                case RecordReasonNo.Reserved17:
                    break;

                case RecordReasonNo.Reserved19:
                    break;

                case RecordReasonNo.PushButton:
                    break;

                case RecordReasonNo.Reserved21:
                    break;

                case RecordReasonNo.Reserved22:
                    break;

                case RecordReasonNo.DoorOpen:
                    break;

                case RecordReasonNo.DoorClosed:
                    break;

                case RecordReasonNo.SuperPasswordOpenDoor:
                    break;

                case RecordReasonNo.Reserved26:
                    break;

                case RecordReasonNo.Reserved27:
                    break;

                case RecordReasonNo.ControllerPowerOn:
                    break;

                case RecordReasonNo.ControllerReset:
                    break;

                case RecordReasonNo.Reserved30:
                    break;

                case RecordReasonNo.Reserved35:
                    break;

                case RecordReasonNo.Reserved36:
                    break;

                case RecordReasonNo.RemoteOpenDoor:
                    break;

                case RecordReasonNo.RemoteOpenDoorByUSBReader:
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                log.Error("记录保存失败:CTRLID=" + ctrlrId, ex);
                throw ex;
            }
        }