void controll() { while (!isReadedData) { //读取数据 sourceDatas = sourceDatasTemp; isReadedData = true; //是否叠包 string[] strArr = sourceDatas.Split('☍'); for (int i = 0; i < strArr.Length - 1; i++) { try { deserializeObject = JsonConvert.DeserializeObject <SourceDataEntity>(strArr[i]); } catch (Exception e) { print("映射数据:" + strArr[i]); print(e); break; } /* * 1.判断数据类型 * 2.获取Content进行反序列化 * 3.逻辑处理 */ if (RoomInfo.RoomInfo.RoomPermissions != RoomPermissions.Admin) { switch (deserializeObject.SourceDataType) { case SourceDataType.EnemyBulletByName: EnemyManager.EnemyBulletQueue.Enqueue(deserializeObject.Content); break; case SourceDataType.EnemyByName: EnemyManager.EnemyQueue.Enqueue(deserializeObject.Content); break; case SourceDataType.GameObj: print("接收到服务器创建物体消息..."); while (NetGameObj.isReadedData) { NetGameObj.sourceDatasTemp = deserializeObject.Content; NetGameObj.isReadedData = false; } break; case SourceDataType.Player1: print("Player1消息来了。。。。。"); break; } } switch (deserializeObject.SourceDataType) { case SourceDataType.Player2: print("接收到Player2消息。。。"); //判断是否是自己 //2.通知Player2 // 通知DataManager while (NetPlayer2.isReadedData) { NetPlayer2.sourceDatasTemp = deserializeObject.Content; NetPlayer2.isReadedData = false; } break; } } } }
private void buttonControl2_Click(object sender, EventArgs e) { String start = teStart.Text; String end = teEnd.Text; String subsection = teSubsection.Text; String scene = teScene.Text; String open = teOpen.Text; String room = teRoom.Text; String emergency = "0"; List <SourceDataEntity> sourceDataList = new List <SourceDataEntity>(); if (start.Length == 0 && end.Length == 0 && subsection.Length == 0) { sourceDataList = gcSourceData.DataSource as List <SourceDataEntity>; foreach (SourceDataEntity sd in sourceDataList) { sd.numSite = scene; sd.numOpen = open; sd.numClinic = room; sd.numYj = emergency; } gcSourceData.DataSource = sourceDataList; gcSourceData.RefreshDataSource(); return; } String sdName = ""; if (scheduled.period.Equals("0")) { sdName = "上午"; } if (scheduled.period.Equals("1")) { sdName = "下午"; } if (scheduled.period.Equals("2")) { sdName = "晚上"; } if (scheduled.period.Equals("3")) { sdName = "全天"; } //分段数量 int rowNum = 0; #region 计算分段数量 if (start.Trim().Length == 0 || end.Trim().Length == 0 || subsection.Trim().Length == 0) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint(sdName + "的设置不能为空", this); return; } String[] startArr = start.Split(new char[] { ':', ':' }); String[] endArr = end.Split(new char[] { ':', ':' }); if (startArr.Length != 2) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint(sdName + "的开始时间设置有误", this); return; } if (endArr.Length != 2) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint(sdName + "的结束时间设置有误", this); return; } //计算早上的分段数量 if (sdName.Equals("上午")) { DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00); DateTime d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00); TimeSpan d3 = d2.Subtract(d1); int minute = d3.Hours * 60 + d3.Minutes; if (minute <= 0) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("上午结束时间不能小于或等于开始时间", this); return; } if (minute < int.Parse(subsection)) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("上午分段时间大于总时间", this); return; } if (minute % int.Parse(subsection) == 0) { rowNum = minute / int.Parse(subsection); } else { rowNum = (minute / int.Parse(subsection)) + 1; } } //计算下午的分段数量 if (sdName.Equals("下午")) { DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00); DateTime d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00); TimeSpan d3 = d2.Subtract(d1); int minute = d3.Hours * 60 + d3.Minutes; if (minute <= 0) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("下午结束时间不能小于或等于开始时间", this); return; } if (minute < int.Parse(subsection)) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("下午分段时间大于总时间", this); return; } if (minute % int.Parse(subsection) == 0) { rowNum = minute / int.Parse(subsection); } else { rowNum = (minute / int.Parse(subsection)) + 1; } } //计算晚上的分段数量 if (sdName.Equals("晚上")) { DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00); DateTime d2 = new DateTime(); if (endArr[0].Equals("24")) { d2 = new DateTime(2004, 1, 2, 00, int.Parse(endArr[1]), 00); } if (int.Parse(endArr[0]) < int.Parse(startArr[0])) { d2 = new DateTime(2004, 1, 2, int.Parse(endArr[0]), int.Parse(endArr[1]), 00); } else { d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00); } TimeSpan d3 = d2.Subtract(d1); int minute = d3.Hours * 60 + d3.Minutes; if (minute <= 0) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("晚上结束时间不能小于或等于开始时间", this); return; } if (minute < int.Parse(subsection)) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("晚上分段时间大于总时间", this); return; } if (minute % int.Parse(subsection) == 0) { rowNum = minute / int.Parse(subsection); } else { rowNum = (minute / int.Parse(subsection)) + 1; } } //计算全天的分段数量 if (sdName.Equals("全天")) { DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00); DateTime d2 = new DateTime(); if (endArr[0].Equals("24")) { d2 = new DateTime(2004, 1, 2, 00, int.Parse(endArr[1]), 00); } else { d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00); } TimeSpan d3 = d2.Subtract(d1); int minute = d3.Hours * 60 + d3.Minutes; if (minute <= 0) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("全天结束时间不能小于或等于开始时间", this); return; } if (minute < int.Parse(subsection)) { cmd.HideOpaqueLayer(); MessageBoxUtils.Hint("全天分段时间大于总时间", this); return; } if (minute % int.Parse(subsection) == 0) { rowNum = minute / int.Parse(subsection); } else { rowNum = (minute / int.Parse(subsection)) + 1; } } #endregion DateTime dt1 = new DateTime(); //开始时间 DateTime dt2 = new DateTime(); //结束时间 dt1 = DateTime.Parse("2008-08-08 " + start + ":00"); dt2 = dt1.AddMinutes(int.Parse(subsection)); for (int i = 0; i < rowNum; i++) { SourceDataEntity sourceData = new SourceDataEntity(); start = dt1.ToString("HH:mm"); if (i == rowNum - 1) { end = teEnd.Text; } else { end = dt2.ToString("HH:mm"); } dt1 = dt2; dt2 = dt1.AddMinutes(int.Parse(subsection)); sourceData.beginTime = start; sourceData.endTime = end; sourceData.numSite = scene; sourceData.numOpen = open; sourceData.numClinic = room; sourceData.numYj = emergency; sourceDataList.Add(sourceData); } gcSourceData.DataSource = sourceDataList; }
private void AddRowNumberEdit_Load(object sender, EventArgs e) { cmd = new Xr.Common.Controls.OpaqueCommand(this); String sdName = ""; if (scheduled.period.Equals("0")) { sdName = "上午"; } if (scheduled.period.Equals("1")) { sdName = "下午"; } if (scheduled.period.Equals("2")) { sdName = "晚上"; } if (scheduled.period.Equals("3")) { sdName = "全天"; } label1.Text = "科室:" + scheduled.deptName + " 医生:" + scheduled.doctorName + " 日期:" + scheduled.workDate + sdName; String param = "hospitalId=" + AppContext.Session.hospitalId + "&deptId=" + scheduled.deptId + "&doctorId=" + scheduled.doctorId + "&workDate=" + scheduled.workDate + "&period=" + scheduled.period; String url = AppContext.AppConfig.serverUrl + "sch/doctorScheduPlan/getLaveTime?" + param; cmd.ShowOpaqueLayer(0f); this.DoWorkAsync(0, (o) => //耗时逻辑处理(此处不能操作UI控件,因为是在异步中) { String data = HttpClass.httpPost(url); return(data); }, null, (data) => //显示结果(此处用于对上面结果的处理,比如显示到界面上) { JObject objT = JObject.Parse(data.ToString()); if (string.Compare(objT["state"].ToString(), "true", true) == 0) { JArray dyList = JArray.Parse(objT["result"].ToString()); List <SourceDataEntity> sdList = new List <SourceDataEntity>(); for (int i = 0; i < dyList.Count; i++) { JArray arr = JArray.Parse(dyList[i].ToString()); SourceDataEntity sd = new SourceDataEntity(); sd.workDate = arr[0].ToString(); sd.beginTime = arr[1].ToString(); sd.endTime = arr[2].ToString(); sd.mzType = "1"; sd.numSite = "0"; sd.numOpen = "0"; sd.numClinic = "0"; sd.numYj = "0"; sdList.Add(sd); } gcSourceData.DataSource = sdList; cmd.HideOpaqueLayer(); } else { cmd.HideOpaqueLayer(); MessageBoxUtils.Show(objT["message"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, this); if (objT["message"].ToString().Equals("只能对当前时段进行增加排班号源")) { DialogResult = DialogResult.Cancel; } return; } }); }