void Import(string szFilePath, string szErrListRawFile, out uint nImported, out uint nFailed, out string szOutError) { szOutError = ""; ErrorLines = new ArrayList(); nImported = 0; nFailed = 0; string strline; StreamWriter tWrite = new StreamWriter(szErrListRawFile, false, Encoding.GetEncoding("gb2312")); System.IO.StreamReader mysr = new StreamReader(Server.MapPath(szFilePath), Encoding.GetEncoding("gb2312")); REQUESTCODE uResponse = REQUESTCODE.EXECUTE_FAIL; System.IO.StringWriter swCSV = new System.IO.StringWriter(); bool bAllRight = true; uint count = 0; uint uCountFali = 0; UNITERM[] termNow = GetTermNow(); int nContint = 0; szOutError = "<table>"; while ((strline = mysr.ReadLine()) != null) { nContint = nContint + 1; if (nContint == 1) { continue; } string szError = ""; string[] szList = strline.Split(','); if (szList.Length < 4) { continue; } count = count + 1; string szRoomName = szList[0]; string[] szResvWeeksList = szList[1].Split(';');; //周次列表 string[] szWeekList = szList[2].Split(';'); //星期 string[] szSecs = szList[3].Split(';'); //节次 UNIROOM setRoom; for (uint i = 0; i < szResvWeeksList.Length; i++)//周数组循环 { string szResvWeekTemp = szResvWeeksList[i]; if (szResvWeekTemp == "") { continue; } string[] szStartEndWeekList = szResvWeekTemp.Split('-');// uint uStrartWeeks = 0; uint uEndWeeks = 0; if (szStartEndWeekList.Length == 1) { uStrartWeeks = Parse(szStartEndWeekList[0]); uEndWeeks = Parse(szStartEndWeekList[0]); } else if (szStartEndWeekList.Length == 2) { uStrartWeeks = Parse(szStartEndWeekList[0]); uEndWeeks = Parse(szStartEndWeekList[1]); } else { szOutError += "<tr><td>" + szList[1] + "(" + szResvWeekTemp + ")" + "</td><td></td><td>格式不对</td></tr>"; uCountFali = uCountFali + 1; continue; } if (uEndWeeks < uStrartWeeks) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szResvWeekTemp + "</td><td>开始周次大于结束周次</td></tr>"; uCountFali = uCountFali + 1; continue; } if (uStrartWeeks == 0 || uEndWeeks == 0) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szResvWeekTemp + "</td><td>开始周次或者结束周次格式不对</td></tr>"; uCountFali = uCountFali + 1; continue; } for (uint k = uStrartWeeks; k <= uEndWeeks; k++)//周循环 { //k表示第几周 // uint uWeeksReal = Parse(szWeekList[m - 1]); for (uint m = 0; m < szWeekList.Length; m++)//m表示星期 { uint uWeekReal = Parse(szWeekList[m]) - 1; if (uWeekReal < 0 || uWeekReal > 7) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "内的第" + k + "周的星期(" + m + ")" + "</td><td>格式错误</td></tr>"; uCountFali = uCountFali + 1; continue; } int uResvDate = GetDateFromWeek((uint)termNow[0].dwYearTerm, k, (uWeekReal));//预约的日期 if (uResvDate.ToString().Length != 8) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "内的第" + k + "周的星期(" + m + ")" + "</td><td>格式错误</td></tr>"; uCountFali = uCountFali + 1; continue; } for (uint n = 0; n < szSecs.Length; n++)//节次 { int uBeginSec = -1; int uEndSec = -1; string[] szSecTempList = szSecs[n].Split('-'); if (szSecTempList.Length == 1) { if (szSecTempList[0] == "") { continue; } uBeginSec = uEndSec = IntParse(szSecTempList[0]); } else if (szSecTempList.Length == 2) { if (szSecTempList[0] == "" || szSecTempList[1] == "") { continue; } uBeginSec = IntParse(szSecTempList[0]); uEndSec = IntParse(szSecTempList[1]); } else { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>格式不对</td></tr>"; uCountFali = uCountFali + 1; continue; } if (uBeginSec == -1 || uEndSec == -1) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>节次小于1</td></tr>"; uCountFali = uCountFali + 1; continue; } if (uBeginSec < 1 || uEndSec < 1) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>节次小于1</td></tr>"; uCountFali = uCountFali + 1; continue; } uint uBeginTime = (uint)(termNow[0].szCTS1[uBeginSec - 1].dwBeginTime); uint uEndTime = (uint)(termNow[0].szCTS1[uEndSec - 1].dwEndTime); if (!GetRoomByName(szRoomName, out setRoom)) { szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>房间名称不存在</td></tr>"; uCountFali = uCountFali + 1; continue; } //预约代码 string szResvDate = uResvDate / 10000 + "-" + (uResvDate % 10000) / 100 + "-" + uResvDate % 100; DateTime resvDate = DateTime.Parse(szResvDate); string szBeginTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uBeginTime / 100).ToString() + ":" + (uBeginTime % 100).ToString(); uint uResvBeginTime = Get1970Seconds(szBeginTimeTemp); string szEndTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uEndTime / 100).ToString() + ":" + (uEndTime % 100).ToString(); uint uResvEndTime = Get1970Seconds(szEndTimeTemp); ALLUSERRESV setValue = new ALLUSERRESV(); setValue.dwBeginTime = uResvBeginTime; setValue.dwEndTime = uResvEndTime; setValue.dwLabID = setRoom.dwLabID; setValue.szLabName = setRoom.szLabName; setValue.szTestName = "全体人员预约"; setValue.dwPurpose = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER; UNIDEVICE[] devList; devList = GetDevByRoomId(setRoom.dwRoomID); RESVDEV[] resvDev = new RESVDEV[devList.Length]; for (int j = 0; j < devList.Length; j++) { resvDev[j].dwDevEnd = devList[j].dwDevSN; resvDev[j].dwDevKind = devList[j].dwKindID; resvDev[j].dwDevStart = devList[j].dwDevSN; resvDev[j].dwDevNum = 1; resvDev[j].szRoomNo = devList[j].szRoomNo; } setValue.ResvDev = resvDev; if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szBeginTimeTemp + "到" + szEndTimeTemp + "</td><td>" + m_Request.szErrMessage + "</td></tr>"; szError += m_Request.szErrMessage + ","; uCountFali = uCountFali + 1; } else { nImported = nImported + 1; } } } } } } szOutError += "</table>"; if (!bAllRight) { DownloadFile(Response, swCSV.GetStringBuilder(), "resarchTestImport.csv"); } // nImported = count; nFailed = uCountFali; tWrite.Close(); }
protected void Page_Load(object sender, EventArgs e) { m_Title = "全体预约"; if (!IsPostBack) { UNIROOM[] roomList = GetAllRoom(); if (roomList != null && roomList.Length > 0) { for (int i = 0; i < roomList.Length; i++) { string szCheck = ""; if (i == 0) { szCheck = " checked=\"true\""; } m_szRoom += "<input class=\"enum\"" + szCheck + " type=\"radio\" name=\"" + "roomID" + "\" id='" + roomList[i].dwRoomID.ToString() + "' /> <label for=\"" + roomList[i].dwRoomID.ToString() + "\">" + roomList[i].szRoomName + "</label>"; } UNIDEVICE[] devList = GetDevByRoomId(roomList[0].dwRoomID); if (devList != null && devList.Length > 0) { for (int i = 0; i < devList.Length; i++) { m_szDev += "<label><input class=\"enum\" type=\"checkbox\" name=\"" + "devID" + "\" value=\"" + devList[i].dwDevID.ToString() + "\" /> " + devList[i].szDevName + "</label>,"; } } } } else if (Request["op"] == "set") { string szError = ""; string szDevID = Request["selectID"]; string[] szDevIDList = szDevID.Split(','); if (szDevIDList.Length == 0) { return; } for (int i = 0; i < szDevIDList.Length; i++) { if (szDevIDList[i] == "") { continue; } UNIDEVICE devCtrl = new UNIDEVICE(); uint uBegInTime = Get1970Seconds(Request["dwBeginTime"]); uint uEndTime = Get1970Seconds(Request["dwEndTime"]); if (getDevByID(szDevIDList[i], out devCtrl)) { uint uDevID = Parse(szDevIDList[i]); ALLUSERRESV setValue = new ALLUSERRESV(); setValue.dwBeginTime = uBegInTime; setValue.dwEndTime = uEndTime; setValue.dwLabID = devCtrl.dwLabID; setValue.szLabName = devCtrl.szLabName; setValue.szTestName = "全体人员预约"; setValue.dwPurpose = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER + (uint)UNIRESERVE.DWPURPOSE.USEFOR_PC; RESVDEV[] resvDev = new RESVDEV[1]; resvDev[0].dwDevEnd = devCtrl.dwDevSN; resvDev[0].dwDevKind = devCtrl.dwKindID; resvDev[0].dwDevStart = devCtrl.dwDevSN; resvDev[0].dwDevNum = 1; resvDev[0].szRoomNo = devCtrl.szRoomNo; setValue.ResvDev = resvDev; if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS) { szError += m_Request.szErrMessage + ","; } } if (szError != "") { MessageBox(szError, "提示", MSGBOX.SUCCESS, MSGBOX_ACTION.CANCEL); } else { MessageBox("设置成功", "提示", MSGBOX.SUCCESS, MSGBOX_ACTION.CANCEL); } } } }
void Import(string szFilePath, string szErrListRawFile, out uint nImported, out uint nFailed, out string szOutError) { szOutError = ""; ErrorLines = new ArrayList(); nImported = 0; nFailed = 0; string strline; StreamWriter tWrite = new StreamWriter(szErrListRawFile, false, Encoding.GetEncoding("gb2312")); System.IO.StreamReader mysr = new StreamReader(Server.MapPath(szFilePath), Encoding.GetEncoding("gb2312")); REQUESTCODE uResponse = REQUESTCODE.EXECUTE_FAIL; System.IO.StringWriter swCSV = new System.IO.StringWriter(); bool bAllRight = true; uint count = 0; uint uCountFali = 0; int nContint = 0; while ((strline = mysr.ReadLine()) != null) { nContint = nContint + 1; if (nContint == 1) { continue; } string szError = ""; string[] szList = strline.Split(','); if (szList.Length < 4) { continue; } count = count + 1; string szRoomName = szList[0]; string szResvDate = szList[1]; uint uBeginTime = Parse(szList[2]); uint uEndTime = Parse(szList[3]); UNIROOM setRoom; if (uEndTime <= uBeginTime) { szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>结束时间小于开始时间</td></tr>"; uCountFali = uCountFali + 1; continue; } if (!GetRoomByName(szRoomName, out setRoom)) { szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>房间名称不存在</td></tr>"; uCountFali = uCountFali + 1; continue; } DateTime resvDate = DateTime.Parse(szResvDate); string szBeginTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uBeginTime / 100).ToString() + ":" + (uBeginTime % 100).ToString(); uint uResvBeginTime = Get1970Seconds(szBeginTimeTemp); string szEndTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uEndTime / 100).ToString() + ":" + (uEndTime % 100).ToString(); uint uResvEndTime = Get1970Seconds(szEndTimeTemp); ALLUSERRESV setValue = new ALLUSERRESV(); setValue.dwBeginTime = uResvBeginTime; setValue.dwEndTime = uResvEndTime; setValue.dwLabID = setRoom.dwLabID; setValue.szLabName = setRoom.szLabName; setValue.szTestName = "全体人员预约"; setValue.dwPurpose = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER; UNIDEVICE[] devList; devList = GetDevByRoomId(setRoom.dwRoomID); RESVDEV[] resvDev = new RESVDEV[devList.Length]; for (int m = 0; m < devList.Length; m++) { resvDev[m].dwDevEnd = devList[m].dwDevSN; resvDev[m].dwDevKind = devList[m].dwKindID; resvDev[m].dwDevStart = devList[m].dwDevSN; resvDev[m].dwDevNum = 1; resvDev[m].szRoomNo = devList[m].szRoomNo; } setValue.ResvDev = resvDev; if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS) { szOutError += "<tr><td>" + szRoomName + "</td><td>" + szBeginTimeTemp + "到" + szEndTimeTemp + "</td><td>" + m_Request.szErrMessage + "</td></tr>"; szError += m_Request.szErrMessage + ","; uCountFali = uCountFali + 1; } else { nImported = nImported + 1; } } if (!bAllRight) { DownloadFile(Response, swCSV.GetStringBuilder(), "resarchTestImport.csv"); } // nImported = count; nFailed = uCountFali; tWrite.Close(); }