Example #1
0
    private void GetRoomGroupState()
    {
        string             devNum  = Request["dev_num"];
        string             labid   = Request["lab_id"];
        string             classId = Request["class_id"];
        string             kindId  = Request["kind_id"];
        string             purpose = Request["purpose"];
        string             dt      = Request["date"];
        uint               date;
        List <roomResvSta> list = new List <roomResvSta>();

        if (string.IsNullOrEmpty(dt) || !uint.TryParse(dt, out date))
        {
            ErrMsg("日期错误");
            return;
        }
        string        date_pre = UintToDateStr(date);
        REQUESTCODE   cd       = REQUESTCODE.EXECUTE_FAIL;
        RGRESVSTATREQ req      = new RGRESVSTATREQ();

        req.dwDate = date;
        if (!string.IsNullOrEmpty(devNum) && devNum != "0")
        {
            req.dwMinDevNum = ToUInt(devNum);
        }
        RGRESVSTAT[] rlt;
        cd = m_Request.Device.GetRGResvStat(req, out rlt);
        if (cd == REQUESTCODE.EXECUTE_SUCCESS && rlt != null)
        {
            for (int i = 0; i < rlt.Length; i++)
            {
                roomResvSta sta = new roomResvSta();
                sta.id       = rlt[i].dwRGID.ToString();
                sta.name     = rlt[i].szRGName + "(设备数:" + rlt[i].dwDevNum + ")";
                sta.title    = rlt[i].szRGName;
                sta.roomName = rlt[i].szRGName;
                sta.devNum   = rlt[i].dwDevNum;
                //教学预约
                TEACHINGRESVINFO[] tchs = rlt[i].szResvInfo;
                List <rsvInfo>     rsv  = new List <rsvInfo>();
                for (int j = 0; j < tchs.Length; j++)
                {
                    rsvInfo info = new rsvInfo();
                    info.testId     = tchs[j].dwTestItemID;
                    info.testCard   = tchs[j].dwTestCardID;
                    info.testName   = tchs[j].szTestName;
                    info.planId     = tchs[j].dwTestPlanID;
                    info.planName   = tchs[j].szTestPlanName;
                    info.teacherId  = tchs[j].dwTeacherID.ToString();
                    info.teacher    = tchs[j].szTeacherName;
                    info.courseId   = tchs[j].dwCourseID;
                    info.courseName = tchs[j].szCourseName;
                    info.groupId    = tchs[j].dwGroupID;
                    info.groupName  = tchs[j].szGroupName;
                    info.teachTime  = tchs[j].dwTeachingTime;
                    info.state      = tchs[j].dwResvStat;
                    rsv.Add(info);
                }
                sta.rsvs = rsv.ToArray();
                list.Add(sta);
            }
            SucRlt(list);
        }
        else
        {
            ErrMsg(m_Request.szErrMsg);
        }
    }
Example #2
0
    private void GetRoomState()
    {
        uint           classkind = ToUInt(Request["classkind"]);
        string         start     = Request["start"];
        string         end       = Request["end"];
        string         date      = Request["date"];
        string         szRoomIDs = Request["room_id"];
        ROOMFORRESVREQ req       = new ROOMFORRESVREQ();

        if (classkind != 0)
        {
            req.dwClassKind = classkind;
        }
        DateTime dtStart = DateTime.Parse(date + " " + start);

        if (dtStart < DateTime.Now)
        {
            start = DateTime.Now.ToString("HH:mm");
        }
        if (!string.IsNullOrEmpty(start) && !string.IsNullOrEmpty(end))
        {
            req.dwBeginTime = (uint)Get1970Seconds(date + " " + start);
            req.dwEndTime   = (uint)Get1970Seconds(date + " " + end);
        }
        req.dwResvPurpose = (uint)UNIRESERVE.DWPURPOSE.USEFOR_PERSONNAL;
        req.dwDate        = ToUInt(date.Replace("-", ""));
        if (!string.IsNullOrEmpty(szRoomIDs))
        {
            // req.szRoomIDs = szRoomIDs;
        }
        //req.szReqExtInfo.szOrderKey = "szRoomName";
        //req.szReqExtInfo.szOrderMode = "ASC";
        ROOMFORRESV[] rlt;
        if (m_Request.Device.GetRoomForResv(req, out rlt) == REQUESTCODE.EXECUTE_SUCCESS)
        {
            uint    rscMode = ToUInt(GetConfig("subSeatResourceMode"));
            ROOMREQ req2    = new ROOMREQ();
            req2.dwInClassKind = req.dwClassKind;
            if ((rscMode & 32) > 0)//二级显示
            {
                req2.szReqExtInfo.szOrderKey  = "dwLabID";
                req2.szReqExtInfo.szOrderMode = "ASC";
            }
            //else
            //{
            //    req2.szReqExtInfo.szOrderKey = "dwRoomID";
            //    req2.szReqExtInfo.szOrderMode = "ASC";
            //}

            UNIROOM[] rms;
            if (m_Request.Device.RoomGet(req2, out rms) == REQUESTCODE.EXECUTE_SUCCESS && rms.Length > 0)//20171012修改,为了获取等过开放信息
            {
                //20171012修改,重新配置开放信息


                List <roomResvSta> list = new List <roomResvSta>();
                for (int j = 0; j < rms.Length; j++)
                {
                    uint?uStartHM    = 2300;
                    uint?uEndHM      = 0;
                    bool bSetOpenEnd = false;
                    PERIODOPENRULEREQ openRuleGet = new PERIODOPENRULEREQ();
                    openRuleGet.dwRuleSN = rms[j].dwOpenRuleSN;
                    PERIODOPENRULE[] devResvRes;
                    if (m_Request.Device.PeriodOpenRuleGet(openRuleGet, out devResvRes) == REQUESTCODE.EXECUTE_SUCCESS && devResvRes.Length > 0)
                    {
                        DateTime dtResv     = DateTime.Parse(Request["date"]);
                        uint?    nSearchDay = (uint?)dtResv.DayOfWeek;
                        if (nSearchDay == 0)
                        {
                            nSearchDay = 7;
                        }
                        else
                        {
                            nSearchDay = nSearchDay - 1;
                        }
                        for (int m = 0; m < devResvRes.Length; m++)
                        {
                            if (devResvRes[m].dwStartDay == nSearchDay)
                            {
                                if (devResvRes[m].DayOpenRule.Length > 1)
                                {
                                    bSetOpenEnd = true;
                                }
                                for (int n = 0; n < devResvRes[m].DayOpenRule.Length; n++)
                                {
                                    if (devResvRes[m].DayOpenRule[n].dwBegin == 0 || devResvRes[m].DayOpenRule[n].dwEnd == 0)
                                    {
                                        continue;
                                    }
                                    if (devResvRes[m].DayOpenRule[n].dwBegin < uStartHM)
                                    {
                                        uStartHM = devResvRes[m].DayOpenRule[n].dwBegin;
                                    }
                                    if (devResvRes[m].DayOpenRule[n].dwEnd > uEndHM)
                                    {
                                        uEndHM = devResvRes[m].DayOpenRule[n].dwEnd;
                                    }
                                }
                            }
                        }
                    }


                    for (int i = 0; i < rlt.Length; i++)
                    {
                        //20171012修改,重新配置开放信息
                        if (bSetOpenEnd)
                        {
                            rlt[i].dwOpenBegin = uStartHM;
                            rlt[i].dwOpenEnd   = uEndHM;
                        }

                        if (rms[j].dwRoomID == rlt[i].dwRoomID)
                        {
                            //20170527zy添加,管理端对房间设置不对外开放,手机端还是显示出来问题
                            if ((rms[j].dwProperty & 0x800000) > 0)//临时  0x800000=不开放
                            {
                                continue;
                            }

                            roomResvSta sta = new roomResvSta();
                            sta.roomStat = rlt[i];
                            if (sta.roomStat.dwUsableNum < 0)
                            {
                                sta.roomStat.dwUsableNum = 0;
                            }
                            UNIROOM rm = rms[j];
                            sta.id      = rm.dwRoomID.ToString();
                            sta.name    = rm.szRoomName;
                            sta.labId   = rm.dwLabID.ToString();
                            sta.labName = rm.szLabName;
                            list.Add(sta);
                            break;
                        }
                    }
                }
                SucRlt(list);
            }
            else
            {
                ErrMsg(m_Request.szErrMsg);
            }
        }
        else
        {
            ErrMsg(m_Request.szErrMsg);
        }
    }