public void DataBind(int itemId,string name,string groupName,int itemStatus) { List<OA_users> userList = userDal.GetList(1, 1000); List<OA_itemMessage> programMessList = itemMessDal.GetList(1, 1, "[itemId]=" + itemId.ToString() + " and [userName]='" + name + "'", ""); if (userList != null) { foreach (OA_users user in userList) { if (user.realName == name) { groupNameLitr.Text = groupName+ "组:" + user.realName; break; } } } if (programMessList != null) { if (programMessList.Count == 0) postDateLitr.Text = ""; else { itemMess = programMessList[0] ; postDateLitr.Text = itemMess.postDate.ToString("yyy.MM.d"); messageLitr.Text = itemMess.message; } } if (itemMess != null) { OA_step steps = stepDal.GetModel(itemMess.id, "[itemMessageId]"); string[] stepsOrigiArray; if (steps == null) { stepsOrigiArray=Common.setOrigiStepList(groupName); } else { stepsOrigiArray = Common.StringToArray(steps.step); } stepRp.DataSource = stepsOrigiArray; stepRp.DataBind(); if (itemStatus == 100) itemMess.groupStatus = 100; programProgress.Style.Add("width", 5.54 * itemMess.groupStatus + "px"); } }
public void submitBtn_Click(object sender, EventArgs e) { try { user = userDal.GetModel(user.id, "id"); int addFlag = 0;//记录保存的操作是否成功 int itemMessId = Convert.ToInt32(itemMessageIdHidden.Value);//绑定用户组信息时读取出来的itemMessage.id OA_itemMessage groupMess = new OA_itemMessage(); int origiGroupStatus = -1; if (itemMessId == 0)//用户在该项目的小组信息不存在,初始化groupMess { groupMess.userName = user.realName; groupMess.itemId = item.id; groupMess.groupStatus = 0; groupMess.postDate = DateTime.Now; } else groupMess = itemMessageDal.GetModel(itemMessId, "id"); groupMess.message = messageTextarea.Value; if (groupProLenHid.Value != (5.54 * groupMess.groupStatus + "px;"))//组的进度条有变化 { int statusLength = groupProLenHid.Value.Length - 2; origiGroupStatus = groupMess.groupStatus; groupMess.groupStatus = Convert.ToInt32(Convert.ToDouble(groupProLenHid.Value.Substring(0, statusLength)) / 5.54); if (itemMessageIdHidden.Value == "0") { itemMessageDal.Add(groupMess);//改组信息不存在则add groupMess = itemMessageDal.GetList(1, 1, "[itemId]=" + item.id + " and [userName]='" + user.realName + "'", "")[0]; if (groupMess.id != 0) addFlag = 1; } else { groupMess.id = Convert.ToInt32(itemMessageIdHidden.Value); addFlag = itemMessageDal.Update(groupMess);//改组信息存在则update } if (addFlag == 0) scripthelp.Alert("项目小组进度和留言保存失败!", this.Page); else addFlag = 0; int groupCount = 0;//计算该项目的参与的小组数0~4 if (item.frontendName != null & item.frontendName != "") groupCount++; if (item.planeName != null & item.planeName != "") groupCount++; if (item.programName != null & item.programName != "") groupCount++; if (item.flashName != null & item.flashName != "") groupCount++; if(groupCount>0)item.status += (groupMess.groupStatus - origiGroupStatus) * 9 / (groupCount * 10);//根据用户更改后自己的进度而计算项目的总进度0~90 } else//用户进度条无变化 { itemMessageDal.Add(groupMess); groupMess = itemMessageDal.GetList(1, 1, "[itemId]=" + item.id + " and [userName]='" + user.realName + "'", "")[0];//获取刚add的itemMessage对象 if (groupMess.id != 0) addFlag = 1; } OA_step steps = stepDal.GetModel(groupMess.id, "[itemMessageId]"); string[] stepsArray; if (steps == null)//数据库不存在该组步骤信息则加载原始步骤 stepsArray = Common.setOrigiStepList(user.groups); else stepsArray = Common.StringToArray(steps.step); if (stepHiddens.Value.Trim() != Common.ArrayToString(stepsArray))//隐藏的步骤记录input的值有变化 { try { if (steps == null) { OA_step newStep = new OA_step(); newStep.step = stepHiddens.Value.Trim(); newStep.itemMessageId = groupMess.id; stepDal.Add(newStep); addFlag = 1; } else { steps.step = stepHiddens.Value.Trim(); addFlag += stepDal.Update(steps); } } catch(Exception ex) { ControlLog controlLog = new ControlLog("edit"); controlLog.WriteDebugLog("submitBtn_Click-项目步骤保存失败!", ex.ToString(), user.realName); scripthelp.Alert("项目步骤保存失败!", this.Page); } if (addFlag == 0) scripthelp.Alert("项目步骤保存失败!", this.Page); else addFlag = 0; } if (user.realName == item.leaderName)//是项目负责人则要保存其对项目信息的更改 { item.leaderName = leaderInput.Value.Trim(); if (linkInput.Value.Trim() == "暂无") { item.linkUrl = ""; } else item.linkUrl = linkInput.Value.Trim(); item.client = clientInput.Value.Trim(); item.money = Convert.ToInt32(moneyInput.Value.Trim()); item.completeDate = Convert.ToDateTime(yearIn.Value.Trim() + "-" + monthIn.Value.Trim() + "-" + dayIn.Value.Trim()); item.itemDetials = itemDetialsIn.InnerText.Trim(); item.zipUrl = ""; } addFlag = itemDal.Update(item); int userItemsCount = DataBind(item); if (origiGroupStatus != -1 && userItemsCount != 0) { user.status += (groupMess.groupStatus - origiGroupStatus) / userItemsCount; if (user.status > 100) user.status = 100; else if (user.status < 0) user.status = 0; userDal.Update(user); } else DataBind(item); if (addFlag != 0) scripthelp.Alert("保存成功!", this.Page); } catch (Exception ex) { ControlLog controlLog = new ControlLog("edit"); controlLog.WriteDebugLog("submitBtn_Click-项目详细信息保存失败!", ex.ToString(), user.realName); scripthelp.Alert("项目详细信息保存失败!", this.Page); } }
//返回用户正在进行的项目数 protected int DataBind(OA_item item) { itemNameLitr.Text = item.itemName; leaderInput.Value = item.leaderName; clientInput.Value = item.itemName; moneyInput.Value = item.money.ToString(); yearIn.Value = item.completeDate.Year.ToString(); monthIn.Value = item.completeDate.Month.ToString(); dayIn.Value = item.completeDate.Day.ToString(); programProgress.InnerText = item.status.ToString() + "%"; if (item.linkUrl == null | item.linkUrl == "") linkInput.Value = "暂无";//如果linUrl没有则显示“暂无” else linkInput.Value = item.linkUrl; itemDetialsIn.Value = item.itemDetials; itemProgress.Style.Add("width", 5.36 * item.status + "px"); if (item.status >= 90 &&itemDetialsIn.Disabled ==false) { submitBtn.Visible = false; itemComplete.Visible = true; } if (user.groups == "程序") groupNameLitr.Text = "后台" + "组:" + user.realName; else groupNameLitr.Text = user.groups + "组:" + user.realName; OA_itemMessage programMess = new OA_itemMessage(); List<OA_itemMessage> itemMessList = itemMessageDal.GetList(1, 1, "[itemId]=" + item.id + " and [userName]='" + user.realName + "'", ""); if (itemMessList != null & itemMessList.Count != 0) { programMess = itemMessList[0];//把符合项目id和参与人名字的项目信息赋值到programMess } if (programMess != null) { groupProgress.Style.Add("width", 5.54 * programMess.groupStatus + "px"); OA_step steps = stepDal.GetModel(programMess.id, "[itemMessageId]"); string[] stepsOrigiArray; if (steps == null) { stepsOrigiArray = Common.setOrigiStepList(user.groups); } else stepsOrigiArray = Common.StringToArray(steps.step); stepRpt.DataSource = stepsOrigiArray; stepRpt.DataBind(); } if (programMess.id != 0)//如果读取的programMess存在 { messageTextarea.Value = programMess.message; messageDateLtr.Text = programMess.postDate.ToString("yyy.MM.d"); } itemMessageIdHidden.Value = programMess.id.ToString(); List<OA_item> itemList = itemDal.GetList(1, 2000); return Header1.DataBind(itemList, user.realName, user.loginName); }