Пример #1
0
 /// <summary>
 /// 实体类转视图类
 /// </summary>
 /// <param name="model">标准流程实体类</param>
 /// <returns>视图类</returns>
 private ModelView.ApoActView Model2View(Model.TableModel.Apo_item model)
 {
     ModelView.ApoActView view = new ModelView.ApoActView();
     view.id                    = model.id;
     view.status_name           = model.status_name;
     view.status_no             = model.status_no;
     view.act_no                = string.Empty;
     view.apo_no                = model.apo_no;
     view.apo_item_no           = model.apo_item_no;
     view.apo_item_name         = model.apo_item_name;
     view.apo_index             = model.apo_index.ToString();
     view.next_item_no          = model.next_item_no;
     view.next_item_name        = string.Empty;
     view.next_user_name        = string.Empty;
     view.act_desc              = string.Empty;
     view.act_result            = string.Empty;
     view.act_step              = string.Empty;
     view.act_user_no           = string.Empty;
     view.act_user_name         = string.Empty;
     view.act_time              = string.Empty;
     view.ralate_no             = string.Empty;
     view.ralate_file_name      = string.Empty;
     view.ralate_file_extension = string.Empty;
     view.ralate_type_no        = string.Empty;
     view.step_finished         = string.Empty;
     view.apo_finished          = string.Empty;
     view.dept_no               = string.Empty;
     view.dept_name             = string.Empty;
     return(view);
 }
Пример #2
0
 /// <summary>
 /// 实体类转视图类
 /// </summary>
 /// <param name="model">实体类</param>
 /// <returns>视图类</returns>
 private ModelView.ApoActView Model2View(Model.TableModel.Apo_act model)
 {
     ModelView.ApoActView view = new ModelView.ApoActView();
     view.id                    = model.id;
     view.status_name           = model.status_name;
     view.status_no             = model.status_no;
     view.act_no                = model.act_no;
     view.apo_no                = model.apo_no;
     view.apo_item_no           = model.apo_item_no;
     view.apo_item_name         = model.apo_item_name;
     view.apo_index             = model.apo_index.ToString();
     view.next_item_no          = model.next_item_no;
     view.next_item_name        = model.next_item_name;
     view.next_user_name        = model.next_user_name;
     view.act_desc              = model.act_desc;
     view.act_result            = model.act_result?"通过":"驳回";
     view.act_step              = model.act_step.ToString();
     view.act_user_no           = model.act_user_no;
     view.act_user_name         = model.act_user_name;
     view.act_time              = model.act_time.ToString("yyyy-MM-dd HH:mm:ss.fff");
     view.ralate_no             = model.ralate_no;
     view.ralate_file_name      = model.ralate_file_name;
     view.ralate_file_extension = model.ralate_file_extension;
     view.ralate_type_no        = model.ralate_type_no;
     view.step_finished         = model.step_finished ? "是" : "否";
     view.apo_finished          = model.apo_finished ? "是" : "否";
     Ctrl.GlobalDataCtrl gdc = new GlobalDataCtrl();
     view.dept_no   = gdc.GetStrByField("dept_no", "sys_user", "user_no", view.act_user_no);
     view.dept_name = gdc.GetStrByField("dept_name", "sys_dept", "dept_no", view.act_user_no);
     return(view);
 }
Пример #3
0
        /// <summary>
        /// 数据更新
        /// </summary>
        /// <param name="newValue">更新后对象</param>
        /// <returns>影响记录条数</returns>
        public int Update(ModelView.ApoActView newValue)
        {
            Model.TableModel.Apo_act        model     = View2Model(newValue);
            List <Model.TableModel.Apo_act> modelList = new List <Model.TableModel.Apo_act>();

            modelList.Add(model);
            return(DbEngine.QueryInt <Model.TableModel.Apo_act>("update", modelList));
        }
Пример #4
0
 /// <summary>
 /// 私有方法,视图数据更新
 /// </summary>
 /// <param name="data">初始视图</param>
 /// <returns>更新后的视图</returns>
 private ModelView.ApoActView UpdateData(ModelView.ApoActView data)
 {
     if (data.act_result != "驳回")
     {
         data.apo_finished  = "是";
         data.step_finished = "是";
     }
     return(data);
 }
Пример #5
0
        /// <summary>
        /// 审核流程的建立
        /// </summary>
        /// <param name="dfv">要发起审核流程的文件信息</param>
        /// <param name="userNo">用户名</param>
        /// <returns>处理结果</returns>
        public string CreateApprove(ModelView.DmsFileView dfv, string userNo)
        {
            if (dfv == null)
            {
                return("文件不存在!");
            }
            //获取第一个审核流程视图
            ApoItemCtrl aic = new ApoItemCtrl();

            ModelView.ApoItemView aiv = aic.GetFirst(dfv.file_type_name);
            if (aiv == null)
            {
                return("未找到审核流程!");
            }
            //获取下一个审核流程视图
            ModelView.ApoItemView aivNext = aic.GetNext(aiv.apo_no, aiv.apo_item_no);
            if (aivNext == null)
            {
                return("该审核流程有误!");
            }
            //用户构建
            GlobalDataCtrl gdc      = new GlobalDataCtrl();
            string         userName = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo);

            //文件视图及审核流程视图创建Act视图并处理
            ModelView.ApoActView aav = new ModelView.ApoActView();
            aav.id                    = string.Empty;
            aav.status_no             = "310";
            aav.status_name           = "已确认";
            aav.act_no                = string.Empty;
            aav.apo_no                = aiv.apo_no;
            aav.apo_item_no           = aiv.apo_item_no;
            aav.apo_item_name         = aiv.apo_item_name;
            aav.apo_index             = aiv.apo_index;
            aav.next_item_no          = aiv.next_item_no;
            aav.next_item_name        = aivNext.apo_item_name;
            aav.next_user_name        = aivNext.apo_user_name;
            aav.act_desc              = dfv.file_desc;
            aav.act_result            = "通过";
            aav.act_step              = "0";
            aav.act_user_no           = userNo;
            aav.act_user_name         = userName;
            aav.act_time              = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            aav.ralate_no             = dfv.file_no;
            aav.ralate_file_name      = dfv.file_name;
            aav.ralate_file_extension = dfv.file_extension;
            aav.ralate_type_no        = dfv.file_type_no;
            aav.step_finished         = "否";
            aav.apo_finished          = "否";
            aav.dept_no               = string.Empty;
            aav.dept_name             = string.Empty;
            //数据写入
            ApoActCtrl aac = new ApoActCtrl();

            return(aac.Insert(aav) > 0 ? "success" : "数据写入失败!");
        }
Пример #6
0
        /// <summary>
        /// 审核驳回
        /// </summary>
        /// <param name="lastApoActView">前一审核动作视图</param>
        /// <param name="dmsFileView">要驳回审核的文件信息</param>
        /// <param name="userNo">用户名</param>
        /// <returns>处理结果</returns>
        public string RejectApprove(ModelView.ApoActView lastApoActView, ModelView.DmsFileView dmsFileView, string userNo)
        {
            string res = string.Empty;
            //获取下一个处理的流程视图
            ApoItemCtrl apoItemCtrl = new ApoItemCtrl();

            ModelView.ApoItemView nextApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no);
            if (nextApoItemView == null)
            {
                return("文件审核流程设定有误!");
            }
            if (nextApoItemView.apo_user_no.ToLower() != userNo.ToLower())
            {
                return("您无权审核此文件!");
            }
            if (lastApoActView.act_result == "驳回")
            {
                return("无法驳回已驳回的文件,请重传!");
            }
            //获取第一次发起的审核动作
            ApoActCtrl apoActCtrl = new ApoActCtrl();

            ModelView.ApoActView firstApoActView = apoActCtrl.GetFirst(dmsFileView.file_no);
            if (firstApoActView == null)
            {
                return("不存在对应的审核发起记录!");
            }
            //确认上一流程
            lastApoActView.step_finished = "是";
            apoActCtrl.Update(lastApoActView);
            //按照驳回流程构造当前动作
            lastApoActView.id             = string.Empty;
            lastApoActView.status_name    = "已确认";
            lastApoActView.status_no      = "310";
            lastApoActView.act_no         = string.Empty;
            lastApoActView.apo_item_no    = nextApoItemView.apo_item_no;
            lastApoActView.apo_item_name  = nextApoItemView.apo_item_name;
            lastApoActView.apo_index      = nextApoItemView.apo_index;
            lastApoActView.next_item_no   = firstApoActView.apo_item_no;
            lastApoActView.next_item_name = firstApoActView.apo_item_name;
            lastApoActView.next_user_name = firstApoActView.act_user_name;
            lastApoActView.act_result     = "驳回";
            int intTmp = 1;

            lastApoActView.act_step    = (int.TryParse(lastApoActView.act_step, out intTmp) ? intTmp + 1 : 1).ToString();
            lastApoActView.act_user_no = userNo;
            GlobalDataCtrl gdc = new GlobalDataCtrl();

            lastApoActView.act_user_name = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo);
            lastApoActView.act_time      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            lastApoActView.step_finished = "是";
            lastApoActView.apo_finished  = "否";
            //数据写入
            return(FinishApprove(lastApoActView));
        }
Пример #7
0
        /// <summary>
        /// 结束当前审核流程
        /// </summary>
        /// <param name="currentApoActView"></param>
        /// <returns></returns>
        public string FinishApprove(ModelView.ApoActView currentApoActView)
        {
            string msg = UpdateApprove(currentApoActView.ralate_no);

            if (msg == "success")
            {
                ApoActCtrl apoActCtrl = new ApoActCtrl();
                msg = apoActCtrl.Insert(currentApoActView) > 0?"success":"结束流程数据写入失败!";
            }
            return(msg);
        }
Пример #8
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="where">where子句</param>
        /// <param name="orderBy">排序子句</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="total">out参数,返回总记录条数</param>
        /// <returns>视图对象列表</returns>
        public List <ModelView.ApoActView> GetListPage(string where, Dictionary <string, string> orderBy, int pageSize, int pageIndex, out int total)
        {
            List <Model.TableModel.Apo_act> list = DbEngine.QueryPage <Model.TableModel.Apo_act>("apo_act", pageIndex, pageSize, where, orderBy, out total);
            List <ModelView.ApoActView>     res  = new List <ModelView.ApoActView>();

            foreach (Model.TableModel.Apo_act item in list)
            {
                ModelView.ApoActView model = Model2View(item);
                res.Add(model);
            }
            return(res);
        }
Пример #9
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="where">where子句</param>
        /// <param name="orderBy">排序子句</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="pageIndex">页面索引</param>
        /// <returns>最终结果字符串</returns>
        public string GetListPage(string where, Dictionary <string, string> orderBy, int pageSize, int pageIndex)
        {
            int total = 0;
            List <Model.TableModel.Apo_act> list = DbEngine.QueryPage <Model.TableModel.Apo_act>("apo_act", pageIndex, pageSize, where, orderBy, out total);
            List <ModelView.ApoActView>     res  = new List <ModelView.ApoActView>();

            foreach (Model.TableModel.Apo_act item in list)
            {
                ModelView.ApoActView model = Model2View(item);
                res.Add(model);
            }
            return(Common.JsonHelper.SerializeObject(new { total = total, rows = res }));
        }
Пример #10
0
        /// <summary>
        /// 视图类转实体类
        /// </summary>
        /// <param name="view">视图类</param>
        /// <returns>实体类</returns>
        private Model.TableModel.Apo_act View2Model(ModelView.ApoActView view)
        {
            Model.TableModel.Apo_act model = new Model.TableModel.Apo_act();
            if (string.IsNullOrEmpty(view.id))
            {
                model.id = Common.Md5Operate.CreateGuidId();
            }
            else
            {
                model.id = view.id;
            }
            model.status_name = view.status_name;
            model.status_no   = string.IsNullOrEmpty(view.status_no) ? "310" : view.status_no;
            GlobalDataCtrl globalDataCtrl = new GlobalDataCtrl();

            model.act_no        = string.IsNullOrEmpty(view.act_no) ? globalDataCtrl.GetNextNoByTblName("apo_act") : view.act_no;
            model.apo_no        = string.IsNullOrEmpty(view.apo_no)?"ApoNo":view.apo_no;
            model.apo_item_no   = string.IsNullOrEmpty(view.apo_item_no) ? "ApoItemNo" : view.apo_item_no;
            model.apo_item_name = string.IsNullOrEmpty(view.apo_item_name) ? "ApoItemName" : view.apo_item_name;
            int tmpInt = 0;

            model.apo_index      = string.IsNullOrEmpty(view.apo_index) ? 0 : (int.TryParse(view.apo_index, out tmpInt)?tmpInt:0);
            model.next_item_no   = string.IsNullOrEmpty(view.next_item_no) ? "NextItemNo" : view.next_item_no;
            model.next_item_name = string.IsNullOrEmpty(view.next_item_name) ? "NextItemName" : view.next_item_name;
            model.next_user_name = string.IsNullOrEmpty(view.next_user_name) ? "NextUserName" : view.next_user_name;
            model.act_desc       = view.act_desc;
            model.act_result     = view.act_result == "通过" ? true : false;
            model.act_step       = string.IsNullOrEmpty(view.act_step) ? 0 : (int.TryParse(view.act_step, out tmpInt) ? tmpInt : 0);
            model.act_user_no    = string.IsNullOrEmpty(view.act_user_no) ? "ActUserNo" : view.act_user_no;
            model.act_user_name  = string.IsNullOrEmpty(view.act_user_name) ? "ActUserName" : view.act_user_name;
            DateTime dt = DateTime.Now;

            model.act_time              = string.IsNullOrEmpty(view.act_time) ? DateTime.Now : DateTime.TryParse(view.act_time, out dt)?dt:DateTime.Now;
            model.ralate_no             = string.IsNullOrEmpty(view.ralate_no) ? "RalateNo" : view.ralate_no;
            model.ralate_file_name      = string.IsNullOrEmpty(view.ralate_file_name) ? "RalateFileName" : view.ralate_file_name;
            model.ralate_file_extension = string.IsNullOrEmpty(view.ralate_file_extension) ?"RalateFileExtension": view.ralate_file_extension;
            model.ralate_type_no        = string.IsNullOrEmpty(view.ralate_type_no) ? "RalateTypeNo" : view.ralate_type_no;
            model.step_finished         = view.step_finished == "是" ? true : false;
            model.apo_finished          = view.apo_finished == "是" ? true : false;
            return(model);
        }
Пример #11
0
        /// <summary>
        /// 审核通过
        /// </summary>
        /// <param name="lastApoActView">前一审核动作视图</param>
        /// <param name="dmsFileView">要发起审核流程的文件信息</param>
        /// <param name="userNo">用户名</param>
        /// <returns>处理结果</returns>
        public string PassApprove(ModelView.ApoActView lastApoActView, ModelView.DmsFileView dmsFileView, string userNo)//文件类型对应审核类型编号
        {
            string res = "success";
            //获取下一个处理的流程视图
            ApoItemCtrl apoItemCtrl = new ApoItemCtrl();

            ModelView.ApoItemView nextApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no);
            if (nextApoItemView == null)
            {
                return("文件审核流程设定有误!");
            }
            if (nextApoItemView.apo_user_no.ToLower() != userNo.ToLower())
            {
                return("您无权审核此文件!");
            }
            if (lastApoActView.act_result == "驳回")
            {
                return("无法通过已驳回的文件,请重传!");
            }
            //获取最后一个处理的流程视图
            ModelView.ApoItemView lastApoItemView = apoItemCtrl.GetLast(lastApoActView.apo_no);
            //确认上一流程
            lastApoActView.step_finished = "是";
            ApoActCtrl apoActCtrl = new ApoActCtrl();

            apoActCtrl.Update(lastApoActView);
            //按照结束流程构造当前动作
            lastApoActView.id             = string.Empty;
            lastApoActView.status_name    = "已确认";
            lastApoActView.status_no      = "310";
            lastApoActView.act_no         = string.Empty;
            lastApoActView.apo_item_no    = nextApoItemView.apo_item_no;
            lastApoActView.apo_item_name  = nextApoItemView.apo_item_name;
            lastApoActView.apo_index      = nextApoItemView.apo_index;
            lastApoActView.next_item_no   = nextApoItemView.next_item_no;
            lastApoActView.next_item_name = string.Empty;
            lastApoActView.next_user_name = string.Empty;
            lastApoActView.act_result     = "通过";
            int intTmp = 1;

            lastApoActView.act_step    = (int.TryParse(lastApoActView.act_step, out intTmp) ? intTmp + 1 : 1).ToString();
            lastApoActView.act_user_no = userNo;
            GlobalDataCtrl gdc = new GlobalDataCtrl();

            lastApoActView.act_user_name = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo);
            lastApoActView.act_time      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            lastApoActView.step_finished = "是";
            lastApoActView.apo_finished  = "是";

            ////如果是最后一个,同意的同时添加流程结束处理,即更新现有流程,同时更新文件状态
            if (nextApoItemView.apo_item_no == lastApoItemView.apo_item_no)
            {
                res = FinishApprove(lastApoActView);
                if (res == "success")
                {
                    dmsFileView.is_passed   = "是";
                    dmsFileView.file_status = "使用中";
                    res = UpdateFile(dmsFileView);
                }
            }
            else
            {
                ModelView.ApoItemView nextLowerApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no);
                if (nextLowerApoItemView == null)
                {
                    return("文件审核流程设定有误!");
                }
                lastApoActView.next_item_name = nextLowerApoItemView.apo_item_name;
                lastApoActView.next_user_name = nextLowerApoItemView.apo_user_name;
                lastApoActView.step_finished  = "否";
                lastApoActView.apo_finished   = "否";
                res = Move2NextApprove(lastApoActView);
            }
            return(res);
        }
Пример #12
0
        /// <summary>
        /// 写入并移动向下一审核流程
        /// </summary>
        /// <param name="currentApoActView"></param>
        /// <returns></returns>
        private string Move2NextApprove(ModelView.ApoActView currentApoActView)
        {
            ApoActCtrl apoActCtrl = new ApoActCtrl();

            return(apoActCtrl.Insert(currentApoActView) > 0 ? "success" : "审核通过数据写入失败!");
        }
Пример #13
0
 /// <summary>
 /// 更新操作
 /// </summary>
 /// <param name="jsonStr">更新后对象的json序列化字符串</param>
 /// <returns>影响记录条数</returns>
 public int Update(string jsonStr)
 {
     ModelView.ApoActView model = Common.JsonHelper.DeserializeJsonToObject <ModelView.ApoActView>(jsonStr);
     return(Update(model));
 }
Пример #14
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string msg = "success";
            //获取传入的参数及校验
            string approveResult = context.Request["approveResult"] ?? "APPROVERESULT";

            if (string.IsNullOrEmpty(approveResult) || approveResult == "APPROVERESULT")
            {
                ResOutPut(context, "审核结果不合法!");
            }
            string rowFile = context.Request["rowFile"] ?? "ROWFILE";

            if (string.IsNullOrEmpty(rowFile) && rowFile == "ROWFILE")
            {
                ResOutPut(context, "文件信息有误!");
            }
            string rowApoAct = context.Request["rowApoAct"] ?? "ROWAPPROVE";

            if (string.IsNullOrEmpty(rowApoAct) && rowApoAct == "ROWAPPROVE")
            {
                ResOutPut(context, "审核信息有误!");
            }
            //获取当前用户
            HttpCookie cookies   = context.Request.Cookies["MesCookie"];
            string     cookieStr = string.Empty;

            if (cookies == null || string.IsNullOrEmpty(cookies.Value))
            {
                //context.Response.Redirect("/LoginForm.aspx");
            }
            else
            {
                cookieStr = cookies.Value;
            }
            var    obj    = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(cookieStr) as JToken;
            string userNo = obj == null ? string.Empty : ((obj["userNo"] ?? string.Empty).ToString());

            //类构建
            ModelView.DmsFileView dmsFileView = Common.JsonHelper.DeserializeJsonToObject <ModelView.DmsFileView>(rowFile);
            ModelView.ApoActView  apoActView  = Common.JsonHelper.DeserializeJsonToObject <ModelView.ApoActView>(rowApoAct);
            //dfv.login_user_no = obj["userNo"].ToString();
            //dfv.login_user_name = obj["userName"].ToString();
            Ctrl.Bll.ApoActBll apoActBll = new Ctrl.Bll.ApoActBll();
            if (approveResult == "通过")
            {
                try
                {
                    msg = apoActBll.PassApprove(apoActView, dmsFileView, userNo);
                }
                catch (Exception)
                {
                    ResOutPut(context, "审核通过失败");
                }
            }
            else if (approveResult == "驳回")
            {
                try
                {
                    msg = apoActBll.RejectApprove(apoActView, dmsFileView, userNo);
                }
                catch (Exception)
                {
                    ResOutPut(context, "审核驳回失败");
                }
            }
            else
            {
                ResOutPut(context, "审核结果不合法!");
            }
            ResOutPut(context, msg);
        }