码迷,mamicode.com
首页 > 其他好文 > 详细

请假应用(二)

时间:2015-01-08 09:28:47      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

关于流程

最开始想学习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

 

请假应用(二)

标签:

原文地址:http://www.cnblogs.com/hejiah107/p/4209975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!