/// <summary>
        /// 获取表单数据
        /// </summary>
        public void GetFormJson()
        {
            int          id     = Convert.ToInt32(ctx.Request["keyValue"]);
            workflownode wfnode = IdalCommon.IworkflownodeEx.getEntityById(id);

            writeJsonBack(wfnode.ToJson());
        }
        /// <summary>
        /// 节点跃迁方法
        /// </summary>
        /// <param name="workflowName">工作流名称</param>
        /// <param name="dataid">业务数据主码</param>
        /// <param name="actionName">动作名称</param>
        /// <param name="operatorid">操作者ID</param>
        /// <param name="executer">执行者</param>
        /// <param name="remark">工作流执行备注</param>
        /// <param name="isRecordTrace">是否记录工作流操作日志(默认记录)</param>
        /// <returns>返回是否执行成功</returns>
        public bool trace(string workflowName, int dataid, string actionName, int operatorid, string executer, string remark, bool isRecordTrace = true)
        {
            workflowEx           workflowEx    = new workflowEx();
            workflow             wf            = workflowEx.getworkflow(workflowName);
            int                  instancesid   = 0;
            workflowinstancesEx  wfinstancesEx = new workflowinstancesEx();
            workflowinstances    wfinstances   = wfinstancesEx.getworkflowinstances(wf.id, dataid);
            workflownodeactionEx wfnaEx        = new workflownodeactionEx();
            workflownodeaction   wfna          = wfnaEx.getworkflownodeaction(wf.id, actionName);
            workflownodeEx       wfnEx         = new workflownodeEx();
            string               sql           = string.Empty;

            if (wfinstances != null)
            {
                int currentnodeid = wfna.nextnodeid;
                int?nodcodevalue  = 0;
                if (wfna.nodetype == 2)                                                      //会签节点跳跃
                {
                    List <workflownodeaction> wfnas = wfnaEx.getcountersignnodeaction(wfna); //会签动作集合
                    nodcodevalue = (wfinstances.nodcode | wfna.nodeactioncode) == wfna.nodeactioncode ? wfinstances.nodcode : (wfinstances.nodcode + wfna.nodeactioncode);
                    if (nodcodevalue != wfnas.Select(p => p.nodeactioncode).Sum())
                    {
                        currentnodeid = wfna.currentnodeid;
                    }
                }
                //更新Trace表节点信息
                sql = string.Format(@"update {0} 
                                       set currentnodeid={1},
                                                  nodcode={2}
                                                 where id={3}",
                                    wf.wfinstancestable, currentnodeid, nodcodevalue, wfinstances.id);
                instancesid = wfinstances.id;
                db.SqlQueryDynamic(sql);
                //更新业务表工作流字段值

                workflownode wfn    = wfnEx.getworkflownode(wfna.nextnodeid);
                string       sqlstr = string.Format("update {0} set {1}={2} where id={3}", wf.wfownertable, wf.wffieldname, wfn.wfnodememo);
                db.SqlQueryDynamic(sqlstr);
            }
            else
            {
                instancesid = insert(wf, instancesid, wfna, dataid);
                //更新业务表工作流字段值
                workflownode wfn    = wfnEx.getworkflownode(wfna.nextnodeid);
                string       sqlstr = string.Format("update {0} set {1}='{2}' where id={3}", wf.wfownertable, wf.wffieldname, wfn.wfnodememo, dataid);
                db.SqlQueryDynamic(sqlstr);
            }
            if (isRecordTrace)
            {
                workflowinstancetracingsEx wfinstancetringEx = new workflowinstancetracingsEx();
                wfinstancetringEx.insert(executer, instancesid, wfna);
            }

            return(true);
        }
Exemple #3
0
        private bool update()
        {
            workflownode _wfnode = new workflownode();

            _wfnode.id           = this.id;
            _wfnode.wfid         = this.wfid;
            _wfnode.wfnodename   = this.wfnodename;
            _wfnode.wfnodememo   = this.wfnodememo;
            _wfnode.wfnodestatus = this.wfnodestatus;
            _wfnode.wfnodelock   = this.wfnodelock;
            IdalCommon.IworkflownodeEx.update(_wfnode);
            return(true);
        }
        public int insert(string executer, int instancesid, workflownodeaction wfna)
        {
            workflownode             startnode = workflownodeEx.Instance.getEntityById(wfna.currentnodeid);
            workflownode             endnode   = workflownodeEx.Instance.getEntityById(wfna.nextnodeid);
            workflowinstancetracings wfiting   = new workflowinstancetracings();

            wfiting.instanceid    = instancesid;
            wfiting.startnode     = startnode.wfnodememo;
            wfiting.endnode       = endnode.wfnodememo;
            wfiting.executer      = executer;
            wfiting.executeaction = wfna.nodeactionmemo;
            wfiting.executetime   = DateTime.Now;
            return(workflowinstancetracingsEx.Instance.insert(wfiting).ObjToInt());
        }
 /// <summary>
 /// 提交表单数据
 /// </summary>
 public void SubmitForm()
 {
     try
     {
         string       keyValue = !string.IsNullOrEmpty(ctx.Request["keyValue"]) ? ctx.Request["keyValue"] : ctx.Request["id"];
         workflownode wfnode   = HttpContextDataWrapper.DataToObject <workflownode>(ctx);
         IdalCommon.IworkflownodeEx.SubmitForm(wfnode, keyValue);
         Success("操作成功!");
     }
     catch (Exception)
     {
         Error("操作失败!");
     }
 }
Exemple #6
0
 /// <summary>
 /// 表单提交
 /// </summary>
 /// <param name="role">角色对象</param>
 /// <param name="permissionIds">资源id集合的字符串</param>
 /// <param name="actionpermissionIds">动作id集合的字符串</param>
 /// <param name="keyValue">角色主键</param>
 /// <returns></returns>
 public ActionResult SubmitForm(workflownode wfnodeEntity, string keyValue)
 {
     //IdalCommon.IroleEx.SubmitForm(role, permissionIds, actionpermissionIds, keyValue);
     //return Success("操作成功。");
     if (string.IsNullOrEmpty(keyValue))
     {
         IdalCommon.IworkflownodeEx.insert(wfnodeEntity);
         return(Success("操作成功。"));
     }
     else
     {
         wfnodeEntity.id = int.Parse(keyValue);
         IdalCommon.IworkflownodeEx.update(wfnodeEntity);
         return(Success("操作成功。"));
     }
 }
Exemple #7
0
 public bool Save()
 {
     if (this.id == -1)
     {
         workflownode _wfnode = new workflownode();
         _wfnode.wfid       = this.wfid;
         _wfnode.wfnodename = this.wfnodename;
         _wfnode.wfnodememo = this.wfnodememo;
         _wfnode.wfnodelock = this.wfnodelock;
         _wfnode.id         = IdalCommon.IworkflownodeEx.insert(_wfnode);
         this.id            = _wfnode.id;
     }
     else
     {
         return(this.update());
     }
     return(true);
 }
Exemple #8
0
 public ActionResult Update(workflownode input)
 {
     IdalCommon.IworkflownodeEx.update(input);
     return(this.UpdateSuccessMsg());
 }
Exemple #9
0
 public ActionResult Add(workflownode input)
 {
     IdalCommon.IworkflownodeEx.insert(input);
     return(this.AddSuccessMsg());
 }