Esempio n. 1
0
    public static string deleteData(string strValue)
    {
        bool isSuccess = true;

        TWfSettingFlowVo objFolw = new TWfSettingFlowLogic().Details(strValue);

        //有实例,不可删除
        int intInstCountForFlow = new TWfInstControlLogic().GetSelectResultCount(new TWfInstControlVo()
        {
            WF_ID = objFolw.WF_ID
        });

        if (intInstCountForFlow > 0)
        {
            return("2");
        }

        new TWfSettingTaskCmdLogic().Delete(new TWfSettingTaskCmdVo()
        {
            WF_ID = objFolw.WF_ID
        });
        new TWfSettingTaskFormLogic().Delete(new TWfSettingTaskFormVo()
        {
            WF_ID = objFolw.WF_ID
        });
        new TWfSettingTaskLogic().Delete(new TWfSettingTaskVo()
        {
            WF_ID = objFolw.WF_ID
        });

        bool bIsSucess = new TWfSettingFlowLogic().Delete(strValue);

        return(isSuccess == true ? "1" : "0");
    }
    public void InitData(string strInstStepID)
    {
        string strDataModel = "[{0}] 由 [{1}] {2}";

        if (null == strInstStepID || strInstStepID.Trim() == "")
        {
            return;
        }
        TWfInstTaskDetailVo titdv = new TWfInstTaskDetailLogic().Details(strInstStepID);
        TWfInstControlVo    tcv   = new TWfInstControlLogic().Details(titdv.WF_INST_ID);
        TWfSettingTaskVo    ttv   = new TWfSettingTaskLogic().Details(new TWfSettingTaskVo()
        {
            WF_ID = titdv.WF_ID, WF_TASK_ID = titdv.WF_TASK_ID
        });
        TWfInstTaskDetailVo titdv2 = new TWfInstTaskDetailLogic().Details(new TWfInstTaskDetailVo()
        {
            WF_TASK_ID = tcv.WF_TASK_ID
        });
        TWfInstTaskDetailVo titdvPre = new TWfInstTaskDetailLogic().Details(titdv.PRE_INST_TASK_ID);

        Label1.Text = tcv.WF_SERVICE_NAME;
        Label2.Text = tcv.WF_STARTTIME;
        Label3.Text = GetWFStateName(tcv.WF_STATE);
        Label5.Text = (titdv2.ID == "" ? "该流程已处理完毕" : titdv2.INST_TASK_CAPTION);
        Label6.Text = string.Format(strDataModel, titdv.INST_TASK_STARTTIME, GetUserNameFromID(titdv.SRC_USER, true), "创建任务");
        Label7.Text = string.Format(strDataModel, titdv.CFM_TIME, GetUserNameFromID(titdv.CFM_USER, true), "认领任务");
        Label8.Text = string.Format(strDataModel, titdv.INST_TASK_ENDTIME, GetUserNameFromID(titdv.REAL_USER, true), "完成任务");
        Label9.Text = (titdvPre.ID == ""?"无上一环节":(titdvPre.INST_TASK_CAPTION + ":" + string.Format(strDataModel, titdvPre.INST_TASK_ENDTIME, GetUserNameFromID(titdvPre.REAL_USER, true), "完成")));
    }
    public void InitTitle()
    {
        TWfInstTaskDetailVo detail  = new TWfInstTaskDetailLogic().Details(WF_INST_TASK_ID.Value);
        TWfInstControlVo    control = new TWfInstControlLogic().Details(WF_INST_ID.Value);

        lblWFName.Text      = control.WF_CAPTION;
        lblStepName.Text    = detail.INST_TASK_CAPTION;
        lblServiceCode.Text = control.WF_SERVICE_CODE;
        lblCreateTime.Text  = control.WF_STARTTIME;
    }
Esempio n. 4
0
    /// <summary>
    /// 初始化所有数据的入口
    /// </summary>
    public void InitWFData()
    {
        string strID   = hdID.Value;
        string strType = hdType.Value;
        //先获取流程,环节数据等内容
        TWfInstControlVo        control  = new TWfInstControlLogic().Details(strID);
        List <TWfSettingTaskVo> taskList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo()
        {
            WF_ID = control.WF_ID
        });
        List <TWfInstTaskDetailVo> InstTaskList = new TWfInstTaskDetailLogic().SelectByObject(new TWfInstTaskDetailVo()
        {
            WF_INST_ID = strID
        }, 0, 200);

        CreatAllData(control, taskList, InstTaskList);
    }
Esempio n. 5
0
    /// <summary>
    /// 初始化所有数据的入口
    /// </summary>
    public void InitWFData()
    {
        string strID   = hdID.Value;
        string strType = hdType.Value;
        //先获取流程,环节数据等内容
        TWfInstControlVo        control  = new TWfInstControlLogic().Details(strID);
        List <TWfSettingTaskVo> taskList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo()
        {
            WF_ID = control.WF_ID
        });
        List <TWfInstTaskDetailVo> InstTaskList = new TWfInstTaskDetailLogic().SelectByObject(new TWfInstTaskDetailVo()
        {
            WF_INST_ID = strID, SORT_FIELD = TWfInstTaskDetailVo.INST_TASK_STARTTIME_FIELD, SORT_TYPE = i3.ValueObject.ConstValues.SortType.ASC
        }, 0, 200);

        //CreatAllData(control, taskList, InstTaskList);
        CreatShowData(control, taskList, InstTaskList);
    }
        /// <summary>
        ///  流程实例返元的处理方法
        /// </summary>
        /// <param name="strID">实例流程的编号</param>
        /// <returns></returns>
        protected bool WFOperateGoStart(string strID)
        { //具有返元权限的操作人员可以做
            TWfInstTaskDetailLogic     instTaskLogic = new TWfInstTaskDetailLogic();
            List <TWfInstTaskDetailVo> taskInstList  = instTaskLogic.SelectByObject(new TWfInstTaskDetailVo()
            {
                WF_INST_ID = strID
            }, 0, 100);

            //如果指定的流程无实际的节点,则返回
            if (taskInstList.Count < 1)
            {
                return(false);
            }
            TWfInstTaskDetailVo     taskInstFirst   = taskInstList[0];
            TWfInstTaskDetailVo     taskInstLast    = taskInstList[taskInstList.Count - 1];
            List <TWfSettingTaskVo> taskSettingList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo()
            {
                WF_ID = taskInstFirst.WF_ID
            });
            TWfInstControlVo wfInst = new TWfInstControlLogic().Details(taskInstFirst.WF_INST_ID);

            //如果配置信息没有任何节点,则返回
            if (taskSettingList.Count < 1)
            {
                return(false);
            }

            TWfInstTaskDetailVo taskNew = new TWfInstTaskDetailVo();

            taskNew.ID                  = this.GetGUID();
            taskNew.INST_NOTE           = taskSettingList[0].TASK_NOTE;
            taskNew.INST_TASK_CAPTION   = taskSettingList[0].TASK_CAPTION;
            taskNew.INST_TASK_STARTTIME = this.GetDateTimeToStanString();
            taskNew.INST_TASK_STATE     = TWfCommDict.StepState.StateNormal;
            taskNew.OBJECT_USER         = taskInstFirst.OBJECT_USER; //使用上环节的目标处理人
            taskNew.PRE_INST_TASK_ID    = taskInstLast.ID;           //上一个环节的编号,将成为本环节的上环节编号
            //返元的所有新节点的前一个节点肯定是空的,直接置空即可
            //taskNew.PRE_TASK_ID = i3.ValueObject.ConstValues.SpecialCharacter.EmptyValuesFillChar;
            taskNew.WF_ID        = taskSettingList[0].WF_ID;
            taskNew.WF_INST_ID   = taskInstFirst.WF_INST_ID;
            taskNew.WF_SERIAL_NO = taskInstFirst.WF_SERIAL_NO;
            taskNew.WF_TASK_ID   = taskSettingList[0].ID;

            //将原环节表的标志位更新为完成
            taskInstLast.INST_TASK_ENDTIME    = this.GetDateTimeToStanString();
            taskInstLast.INST_TASK_STATE      = TWfCommDict.StepState.StateDown;
            taskInstLast.INST_TASK_DEAL_STATE = TWfCommDict.StepDealState.ForToZero;
            taskInstLast.REAL_USER            = (this.Page as PageBase).LogInfo.UserInfo.ID;

            //环节表更新完毕,接着更新控制表
            //更新控制表信息
            //退回时要把附件和评论信息放入数据库,业务数据也要全部退回
            //写入流程产生的新数据

            instTaskLogic.Create(taskNew);
            instTaskLogic.Edit(new TWfInstTaskDetailVo()
            {
                ID = taskInstLast.ID,
                INST_TASK_ENDTIME    = taskInstLast.INST_TASK_ENDTIME,
                INST_TASK_STATE      = taskInstLast.INST_TASK_STATE,
                INST_TASK_DEAL_STATE = taskInstLast.INST_TASK_DEAL_STATE,
                REAL_USER            = taskInstLast.REAL_USER
            });
            TWfInstControlLogic instWFLogic = new TWfInstControlLogic();

            instWFLogic.Edit(new TWfInstControlVo()
            {
                ID = wfInst.ID,
                WF_INST_TASK_ID = taskNew.ID,
                WF_TASK_ID      = taskNew.WF_TASK_ID
            });

            //附件和评论都无效

            //业务数据直接copy第一个节点时的数据即可
            TWfInstTaskServiceLogic     serviceLogic   = new TWfInstTaskServiceLogic();
            List <TWfInstTaskServiceVo> serviceList    = new List <TWfInstTaskServiceVo>();
            List <TWfInstTaskServiceVo> serviceOldList = new TWfInstTaskServiceLogic().SelectByObject(new TWfInstTaskServiceVo()
            {
                WF_INST_ID = taskInstFirst.WF_INST_ID, WF_INST_TASK_ID = taskInstFirst.ID
            }, 0, 100);

            if (null != serviceOldList)
            {
                foreach (TWfInstTaskServiceVo service in serviceOldList)
                {
                    //增加ID,流程实例编号、环节实例编号等内容,业务代码,Key和Value由业务系统自己处理
                    TWfInstTaskServiceVo stemp = new TWfInstTaskServiceVo();
                    stemp.ID                = this.GetGUID();
                    stemp.WF_INST_ID        = wfInst.ID;
                    stemp.WF_INST_TASK_ID   = taskNew.ID;
                    stemp.SERVICE_NAME      = service.SERVICE_NAME;
                    stemp.SERVICE_KEY_NAME  = service.SERVICE_KEY_NAME;
                    stemp.SERVICE_KEY_VALUE = service.SERVICE_KEY_VALUE;
                    stemp.SERVICE_ROW_SIGN  = service.SERVICE_ROW_SIGN;
                    serviceList.Add(stemp);
                }
            }

            foreach (TWfInstTaskServiceVo serviceTemp in serviceList)
            {
                serviceLogic.Create(serviceTemp);
            }

            return(true);
        }