public void CreateFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { M_MisProLevel freeMod = null; if (param.IsFirst) { freeMod = freeBll.SelByDocID(oaMod.ID); } else if (param.StepID > 0)//修改步骤 { freeMod = freeBll.SelReturnModel(param.StepID); } bool isUpdate = true; if (freeMod == null)//非修改则新建 { isUpdate = false; freeMod = new M_MisProLevel(); } freeMod.ProID = proceMod.ID; freeMod.stepNum = param.StepNum; freeMod.stepName = proceMod.ProcedureName + "第" + param.StepNum + "步"; freeMod.SendMan = buser.GetLogin().UserID.ToString(); freeMod.ReferUser = param.ReferUser.Trim(','); freeMod.ReferGroup = ""; freeMod.CCUser = param.CCUser.Trim(','); freeMod.CCGroup = ""; freeMod.HQoption = 1; freeMod.Qzzjoption = 0; freeMod.HToption = 2; freeMod.EmailAlert = ""; freeMod.EmailGroup = ""; freeMod.SmsAlert = ""; freeMod.SmsGroup = ""; freeMod.BackOption = oaMod.ID; freeMod.PublicAttachOption = 1; freeMod.PrivateAttachOption = 1; freeMod.DocAuth = "refer"; freeMod.Status = 1; freeMod.CreateTime = DateTime.Now; freeMod.Remind = oaMod.Title + "的流程"; if (isUpdate) { freeBll.UpdateByID(freeMod); } else { freeBll.Insert(freeMod); if (!param.IsFirst)//非起始步骤修改,则更新状态 { oaMod.Status = 0; oaBll.UpdateByID(oaMod); } } }
//后期可扩展为单步步骤,自由 public void CreateAdminFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { //从proceMod中拷贝流程信息,但主办人可自指定 M_MisProLevel freeMod = null; M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(proceMod.ID, param.StepNum); if (stepMod == null) { function.WriteErrMsg("错误:" + proceMod.ProcedureName + "下步骤不完整"); } if (param.IsFirst) { freeMod = freeBll.SelByDocID(oaMod.ID); } else if (param.StepID > 0) { freeMod = freeBll.SelReturnModel(param.StepID); } bool isUpdate = true;//需处理 if (freeMod == null) { isUpdate = false; stepMod.ID = 0; freeMod = stepMod; } freeMod.SendMan = buser.GetLogin().UserID.ToString(); freeMod.ReferUser = param.ReferUser.Trim(','); freeMod.ReferGroup = ""; freeMod.CCUser = param.CCUser.Trim(','); //freeMod.CCGroup = ""; freeMod.BackOption = oaMod.ID; freeMod.CreateTime = DateTime.Now; freeMod.Remind = oaMod.Title + "的流程"; if (isUpdate) { freeBll.UpdateByID(freeMod); } else { freeBll.Insert(freeMod); if (!param.IsFirst) { oaMod.Status = 0; oaBll.UpdateByID(oaMod); } } }
//---------------------流程块 public void CreateStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { switch (proceMod.MyProType) { case M_MisProcedure.ProTypes.Admin: ////不需处理 //break; case M_MisProcedure.ProTypes.AdminFree: CreateAdminFreeStep(oaMod, proceMod, param); break; case M_MisProcedure.ProTypes.Free: CreateFreeStep(oaMod, proceMod, param); break; } }