Esempio n. 1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, WfInstanceEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
Esempio n. 2
0
        public ActionResult SaveCopyForm(string keyValue)
        {
            var wfinstance = wfinstancebll.GetEntity(keyValue);
            //创建新的流程实例
            WfInstanceEntity entity = new WfInstanceEntity();

            entity              = wfinstance;
            entity.ID           = string.Empty;
            entity.INSTANCENAME = wfinstance.INSTANCENAME + "_复制对象";
            wfinstancebll.SaveForm("", entity);

            string newId = entity.ID; //新的InstanceId

            if (!string.IsNullOrEmpty(newId))
            {
                List <WfSettingEntity> slist = wfsettingbll.GetList(keyValue).ToList();

                foreach (WfSettingEntity sentiy in slist)
                {
                    string          sourceSettingId = sentiy.ID;
                    WfSettingEntity setting         = new WfSettingEntity();
                    setting            = sentiy;
                    setting.ID         = string.Empty;
                    setting.INSTANCEID = newId;
                    wfsettingbll.SaveForm("", setting);
                    //新配置项
                    if (!string.IsNullOrEmpty(setting.ID))
                    {
                        #region 新条件设置
                        List <WfConditionEntity> clist = wfconditionbll.GetList(sourceSettingId).ToList();
                        foreach (WfConditionEntity condition in clist)
                        {
                            string            sourceConditionId = condition.ID;
                            WfConditionEntity centity           = new WfConditionEntity();
                            centity           = condition;
                            centity.ID        = string.Empty;
                            centity.SETTINGID = setting.ID;
                            wfconditionbll.SaveForm("", centity);
                            //新具体条件内容明细
                            if (!string.IsNullOrEmpty(centity.ID))
                            {
                                List <WfConditionAddtionEntity> calist = wfconditionaddtionbll.GetList(sourceConditionId).ToList();
                                foreach (WfConditionAddtionEntity caentity in calist)
                                {
                                    WfConditionAddtionEntity addentity = new WfConditionAddtionEntity();
                                    addentity               = caentity;
                                    addentity.ID            = string.Empty;
                                    addentity.WFCONDITIONID = centity.ID;
                                    wfconditionaddtionbll.SaveForm("", addentity);
                                }
                            }
                        }
                        #endregion
                    }
                }

                //条件
                List <WfConditionOfRoleEntity> rolelist = wfconditionofrolebll.GetList(keyValue).ToList();
                foreach (WfConditionOfRoleEntity rentity in rolelist)
                {
                    WfConditionOfRoleEntity newrentity = new WfConditionOfRoleEntity();
                    newrentity            = rentity;
                    newrentity.ID         = string.Empty;
                    newrentity.INSTANCEID = newId;
                    wfconditionofrolebll.SaveForm("", newrentity);
                }
            }
            return(Success("操作成功。"));
        }
Esempio n. 3
0
        public ActionResult SaveForm(string keyValue, WfInstanceEntity entity)
        {
            wfinstancebll.SaveForm(keyValue, entity);

            return(Success("操作成功。"));
        }
Esempio n. 4
0
        /// <summary>
        /// 通过向导模式创建的新流程
        /// </summary>
        /// <param name="queryJson"></param>
        public void SaveNewInstance(string queryJson)
        {
            try
            {
                List <ResultData> rlist        = new List <ResultData>();
                var queryParam                 = queryJson.ToJObject();
                List <ResultData> resultList   = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ResultData> >(queryParam["RESULTDATA"].ToString()); //resultdata
                string            intanceid    = queryParam["INSTANCEID"].ToString();                                                                     //实例id
                string            isenable     = queryParam["ISENABLE"].ToString();                                                                       //是否启用
                string            instancename = queryParam["INSTANCENAME"].ToString();                                                                   //是否启用
                #region 实例对象处理
                //获取当前实例
                WfInstanceEntity historyEntity = service.GetEntity(intanceid);
                //实例化新流程
                WfInstanceEntity entity = new WfInstanceEntity();
                entity = historyEntity;
                entity.INSTANCETYPE = "自有流程";
                entity.ID           = null;
                entity.ISENABLE     = isenable;
                entity.INSTANCENAME = instancename;
                //固定配置点 --机构
                rlist = resultList.Where(p => p.name == historyEntity.ORGANIZEID).ToList();
                //机构id
                if (rlist.Count() == 1)
                {
                    entity.ORGANIZEID = rlist.FirstOrDefault().value;
                }
                rlist = resultList.Where(p => p.name == historyEntity.ORGANIZENAME).ToList();
                //机构名称
                if (rlist.Count() == 1)
                {
                    entity.ORGANIZENAME = rlist.FirstOrDefault().value;
                }
                service.SaveForm("", entity); //成功创建新流程实例
                #endregion

                #region 实例流程转向处理
                //处理流程转向配置
                List <WfSettingEntity> settingList = wfsettingbll.GetList(intanceid).ToList();
                foreach (WfSettingEntity historySetting in settingList)
                {
                    string          settingId     = historySetting.ID;
                    WfSettingEntity settingEntity = new WfSettingEntity();
                    settingEntity            = historySetting;
                    settingEntity.ID         = null;
                    settingEntity.INSTANCEID = entity.ID; //新的流程实例ID
                    string replaceStr = historySetting.FLOWCODE.Split('-')[0].ToString();
                    settingEntity.FLOWCODE = historySetting.FLOWCODE.Replace(replaceStr, Str.PinYin(entity.ORGANIZENAME).ToUpper());
                    //固定配置点 --起始脚本
                    if (!string.IsNullOrEmpty(historySetting.SCRIPTCURCONTENT))
                    {
                        foreach (ResultData resultdata in resultList)
                        {
                            if (historySetting.SCRIPTCURCONTENT.Contains(resultdata.name))
                            {
                                historySetting.SCRIPTCURCONTENT = historySetting.SCRIPTCURCONTENT.Replace(resultdata.name, resultdata.value);
                            }
                        }
                        settingEntity.SCRIPTCURCONTENT = historySetting.SCRIPTCURCONTENT;
                    }

                    //固定配置点--目标脚本
                    if (!string.IsNullOrEmpty(historySetting.SCRIPTCONTENT))
                    {
                        foreach (ResultData resultdata in resultList)
                        {
                            if (historySetting.SCRIPTCONTENT.Contains(resultdata.name))
                            {
                                historySetting.SCRIPTCONTENT = historySetting.SCRIPTCONTENT.Replace(resultdata.name, resultdata.value);
                            }
                        }
                        settingEntity.SCRIPTCONTENT = historySetting.SCRIPTCONTENT;
                    }
                    wfsettingbll.SaveForm("", settingEntity);


                    //新配置项
                    #region 新配置项
                    if (!string.IsNullOrEmpty(settingEntity.ID))
                    {
                        //新条件设置
                        List <WfConditionEntity> clist = wfconditionbll.GetList(settingId).ToList(); //历史流程转向条件明细
                        foreach (WfConditionEntity historyCondition in clist)
                        {
                            string            conditionId     = historyCondition.ID;
                            WfConditionEntity conditionEntity = new WfConditionEntity();
                            conditionEntity           = historyCondition;
                            conditionEntity.ID        = null;
                            conditionEntity.SETTINGID = settingEntity.ID;
                            //固定配置点 --机构
                            rlist = resultList.Where(p => p.name == historyCondition.ORGANIZEID).ToList();
                            //机构id
                            if (rlist.Count() == 1)
                            {
                                conditionEntity.ORGANIZEID = rlist.FirstOrDefault().value;
                            }
                            //机构名称
                            rlist = resultList.Where(p => p.name == historyCondition.ORGANIZENAME).ToList();
                            if (rlist.Count() == 1)
                            {
                                conditionEntity.ORGANIZENAME = rlist.FirstOrDefault().value;
                            }
                            //固定配置点--目标脚本
                            if (!string.IsNullOrEmpty(historyCondition.SQLCONTENT))
                            {
                                foreach (ResultData resultdata in resultList)
                                {
                                    if (historyCondition.SQLCONTENT.Contains(resultdata.name))
                                    {
                                        historyCondition.SQLCONTENT = historyCondition.SQLCONTENT.Replace(resultdata.name, resultdata.value);
                                    }
                                }
                                conditionEntity.SQLCONTENT = historyCondition.SQLCONTENT;
                            }

                            wfconditionbll.SaveForm("", conditionEntity);
                            //新具体条件内容明细
                            #region 新具体条件内容明细
                            if (!string.IsNullOrEmpty(conditionEntity.ID))
                            {
                                List <WfConditionAddtionEntity> calist = wfconditionaddtionbll.GetList(conditionId).ToList();
                                foreach (WfConditionAddtionEntity historyAddtion in calist)
                                {
                                    WfConditionAddtionEntity addtionEntiy = new WfConditionAddtionEntity();
                                    addtionEntiy               = historyAddtion;
                                    addtionEntiy.ID            = string.Empty;
                                    addtionEntiy.WFCONDITIONID = conditionEntity.ID;
                                    //固定配置点 --机构
                                    rlist = resultList.Where(p => p.name == historyAddtion.ORGANIZEID).ToList();
                                    //机构id
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.ORGANIZEID = rlist.FirstOrDefault().value;
                                    }
                                    //机构名称
                                    rlist = resultList.Where(p => p.name == historyAddtion.ORGANIZENAME).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.ORGANIZENAME = rlist.FirstOrDefault().value;
                                    }
                                    //固定配置点 --部门
                                    rlist = resultList.Where(p => p.name == historyAddtion.DEPTNAME).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.DEPTNAME = rlist.FirstOrDefault().value;
                                    }
                                    rlist = resultList.Where(p => p.name == historyAddtion.DEPTID).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.DEPTID = rlist.FirstOrDefault().value;
                                    }
                                    rlist = resultList.Where(p => p.name == historyAddtion.DEPTCODE).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.DEPTCODE = rlist.FirstOrDefault().value;
                                    }
                                    //固定配置点 --人员
                                    rlist = resultList.Where(p => p.name == historyAddtion.USERNAME).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.USERNAME = rlist.FirstOrDefault().value;
                                    }
                                    rlist = resultList.Where(p => p.name == historyAddtion.USERACCOUNT).ToList();
                                    if (rlist.Count() == 1)
                                    {
                                        addtionEntiy.USERACCOUNT = rlist.FirstOrDefault().value;
                                    }
                                    wfconditionaddtionbll.SaveForm("", addtionEntiy);
                                }
                            }
                            #endregion
                        }
                    }
                    #endregion
                }
                #endregion
            }
            catch (Exception)
            {
                throw;
            }
        }