首页 > 代码库 > 请假应用(二)

请假应用(二)

关于流程

最开始想学习OA的流程,老大说目前需求不需要那么麻烦。目前需求是请假人在发起工作时候,自己选择流程(同一级可选择多人),后期让管理员配置流程。所以目前采用的方式是利用字符串拼接。userid&userid(同级) userid-userid(不同级) userid#0/1 表示并/或。 采用这样的处理方式我不知道后期会不会出现其他的错误,但是目前来看是可以解决现有的任何问题。

还需要处理的问题就是委托,审批人允许把该流程委托给其他人处理。啊啊啊啊啊,思维有点混乱了。今天得好好想想。

贴上昨天的代码吧(才把发起请假做好,惨无人道的速度啊。)

  1 #region 请假  2         /// <summary>  3         /// 请假界面  4         /// </summary>  5         /// <returns></returns>  6         public ActionResult 请假界面()  7         {  8             return View();  9         } 10         /// <summary> 11         /// 请假界面返回信息 12         /// </summary> 13         public ActionResult LeaveReturn() 14         { 15             //模拟数据 16             string Title = "从前台获取标题"; 17             string Content = "从前台获取内容"; 18             string UserId = "6";//模拟数据,应该为登陆者ID,从Session中获取 19             string AttId = "1001";//"从前台获取附件ID"; 20             string TypeId = "3";//从前台获取; 21             string Status = "0";//发起以后就在审批,默认为0; 22             string EntId = "1001";// 应为企业ID,从Session中获取 23             DateTime StartTime = DateTime.Now;//从前台获取时间,这里模拟为现在时间 24             DateTime EndTime = DateTime.Now;//如上 25             DateTime SubmitTime = DateTime.Now;//申请时间 26             //更新model 27             model_leave.l_Title = Title; 28             model_leave.l_Content = Content; 29             model_leave.l_Userid = int.Parse(UserId);//转化 30             //判断是否有附件 31             if (AttId == null) 32             { 33                 model_leave.l_AttId = null; 34             } 35             else 36             { 37                 model_leave.l_AttId = int.Parse(AttId); 38             } 39             model_leave.l_TypeId = int.Parse(TypeId); 40             model_leave.l_Status = int.Parse(Status); 41             model_leave.E_entId = int.Parse(EntId); 42             model_leave.l_StartTime = StartTime; 43             model_leave.l_EndTime = EndTime; 44             model_leave.l_SubmitTime = SubmitTime; 45             //将数据插入请假表 46             if (bll_leave.Add(model_leave)) 47             { 48                 //获取刚插入表数据的主键 49                 string sql = "select max(l_Id) from pc_leave where l_Userid=‘" + UserId + ""; 50                 string ItemId = PM.DBUtility.DbHelperMySQL.Query(sql).Tables[0].Rows[0][0].ToString(); 51                 string Process = "userid&userid&0-userid-userid"; 52                 DateTime AddTime = DateTime.Now; 53                 string Manager = "1";//此处从process中解出 54                 //创建一个Hashtable实例 55                 Hashtable htDiaAndCir = new Hashtable(); 56                 //构造哈希表语句 57                 string sqlInterCir = //这里语句就不写出来了,也不难 58                 MySqlParameter[] praCir = //这里语句就不写出来了,也不难 59  60                 string sqlInterCou = //这里语句就不写出来了,也不难 61                 MySqlParameter[] praCou =  //这里语句就不写出来了,也不难             
htDiaAndCir.Add(sqlInterCir, praCir);
62 htDiaAndCir.Add(sqlInterCou, praCou); 63 //将数据插入流转记录表 64 if (DBUtility.DbHelperMySQL.ExecuteSqlTran(htDiaAndCir)) 65 { 66 return Json(new { code = 0, msg = "请假成功!" }); 67 } 68 else 69 { 70 //将插入的请假表删除 71 bll_leave.Delete(int.Parse(ItemId)); 72 Common.WriteErrorLog("40063", "流转记录表插入失败", "[AppLeave] 插入流转表"); 73 return Json(new { code = 40063, msg = "请假失败!" }); 74 } 75 } 76 else 77 { 78 Common.WriteErrorLog("40062", "请假表插入失败", "[AppLeave] 插入请假表"); 79 return Json(new { code = 40062, msg = "请假失败!" }); 80 } 81 } 82 /// <summary> 83 /// 删除附件 84 /// </summary> 85 /// <returns></returns> 86 [HttpPost] 87 public ActionResult DelAttachment() 88 { 89 try 90 { 91 //附件id 92 string attId = Request["attid"]; 93 //附件名称 94 string attName = Request["attname"]; 95 if (string.IsNullOrEmpty(attId) || string.IsNullOrEmpty(attName)) 96 return Json(new { code = -1, msg = "参数错误!" }); 97 else 98 { 99 //删除数据表100 bll_attachment.Delete(int.Parse(attId));101 //删除文件102 System.IO.File.Delete(HttpContext.Server.MapPath("/Content/JqueryUpload/upload/" + attName));103 return Json(new { code = 0, msg = "删除成功!" });104 }105 }106 catch (Exception ex)107 {108 Common.WriteErrorLog("40004", "删除附件失败:" + ex.Message, "[work] 删除附件");109 return Json(new { code = -2, msg = "删除失败!" });110 }111 112 }113 #endregion

 

请假应用(二)