using Learun.Util; using Learun.Util.Constant; using System; using System.Collections.Generic; namespace Learun.Application.WorkFlow { /// /// 版 本 PIT-ADMS V7.0.3 敏捷开发框架 /// Copyright (c) 2013-2018 Hexagon PPM /// 创建人:研发部 /// 日 期:2018.12.06 /// 描 述:工作流模板(新) /// public class NWFSchemeBLL : NWFSchemeIBLL { private NWFSchemeService nWFSchemeService = new NWFSchemeService(); #region 获取数据 /// /// 获取流程分页列表 /// /// 分页参数 /// 查询条件 /// public IEnumerable GetInfoPageList(Pagination pagination, string queryJson) { return nWFSchemeService.GetInfoPageList(pagination, queryJson); } /// /// 获取自定义流程列表 /// /// 用户信息 /// public IEnumerable GetInfoList(UserInfo userInfo, string ProjectId) { return nWFSchemeService.GetInfoList(userInfo, ProjectId); } /// /// 获取流程模板列表 /// /// 分类Id /// public IEnumerable GetInfoListByCategoryId(string categoryId) { return nWFSchemeService.GetInfoListByCategoryId(categoryId); } /// /// 获取流程分类树形数据 /// /// 项目ID /// public List GetCategoryTree(string ProjectId, string PlantType) { List clist = new List() { }; List treeList = new List(); List list = nWFSchemeService.GetCategoryTree(ProjectId, PlantType); foreach (var item in list) { TreeModel node = new TreeModel { id = item.FlowClassifyID, text = item.ClassifyName, value = item.FlowClassifyID, showcheck = false, checkstate = 0, isexpand = true, parentId = "" }; treeList.Add(node); } return treeList.ToTree(); } /// /// 获取流程分类数据 /// /// /// public List GetCategoryList(string queryJson) { return nWFSchemeService.GetCategoryList(queryJson); } /// /// 获取流程分类数据 /// /// 流程分类00001单位平台,00002项目平台 /// 项目ID /// public List GetNWFSchemeCategoryEntityList(string plantType, string ProjectId) { return nWFSchemeService.GetNWFSchemeCategoryEntityList(plantType, ProjectId); } /// /// 获取流程分类实体 /// /// 主键 /// public NWFSchemeCategoryEntity GetCategoryForm(string keyValue) { return nWFSchemeService.GetCategoryForm(keyValue); } /// /// 获取流程列表 /// /// 用户信息 /// public IEnumerable GetInfoList() { return nWFSchemeService.GetInfoList(); } /// /// 获取流程模板分页列表 /// /// 分页参数 /// 登录者信息 /// 查询参数 /// public IEnumerable GetAppInfoPageList(Pagination pagination, UserInfo userInfo, string queryJson) { return nWFSchemeService.GetAppInfoPageList(pagination, userInfo, queryJson); } /// /// 获取模板基础信息的实体 /// /// 主键 /// public NWFSchemeInfoEntity GetInfoEntity(string keyValue) { return nWFSchemeService.GetInfoEntity(keyValue); } /// /// 获取模板基础信息的实体 /// /// 流程编号 /// public NWFSchemeInfoEntity GetInfoEntityByCode(string code) { return nWFSchemeService.GetInfoEntityByCode(code); } /// /// 获取模板基础信息的实体 /// /// 流程编号 /// 项目ID /// public NWFSchemeInfoEntity GetInfoEntityByCodeAndProjectId(string code, string ProjectId) { return nWFSchemeService.GetInfoEntityByCodeAndProjectId(code, ProjectId); } /// /// 获取流程模板权限列表 /// /// 模板信息主键 /// public IEnumerable GetAuthList(string schemeInfoId) { return nWFSchemeService.GetAuthList(schemeInfoId); } /// /// 获取模板列表 /// /// 分页参数 /// 流程信息主键 /// public IEnumerable GetSchemePageList(Pagination pagination, string schemeInfoId) { return nWFSchemeService.GetSchemePageList(pagination, schemeInfoId); } /// /// 获取模板的实体 /// /// 主键 /// public NWFSchemeEntity GetSchemeEntity(string keyValue) { return nWFSchemeService.GetSchemeEntity(keyValue); } /// /// 获取模板的实体 /// /// 流程信息主键 /// public NWFSchemeEntity GetSchemeEntityBySchemeInfoId(string schemeInfoId) { return nWFSchemeService.GetSchemeEntityBySchemeInfoId(schemeInfoId); } /// /// 获取模板的实体 /// /// 流程信息主键 /// public IEnumerable GetNewSchemeEntityBySchemeInfoId(string schemeInfoId) { return nWFSchemeService.GetNewSchemeEntityBySchemeInfoId(schemeInfoId); } #endregion #region 提交数据 /// /// 虚拟删除模板信息 /// /// 主键 public void DeleteEntity(string keyValue) { nWFSchemeService.DeleteEntity(keyValue); } /// /// 保存模板信息 /// /// 主键 /// 模板基础信息 /// 模板信息 /// 模板权限信息 public void SaveEntity(string keyValue, NWFSchemeInfoEntity infoEntity, NWFSchemeEntity schemeEntity, List authList) { if (!string.IsNullOrEmpty(keyValue)) { NWFSchemeEntity oldNWFSchemeEntity = GetSchemeEntity(infoEntity.F_SchemeId); if (oldNWFSchemeEntity.F_Content == schemeEntity.F_Content && oldNWFSchemeEntity.F_Type == schemeEntity.F_Type) { schemeEntity = null; } } nWFSchemeService.SaveEntity(keyValue, infoEntity, schemeEntity, authList); } /// /// 保存模板信息 add by zhuxing /// /// 当前模板数据 /// 最新通用模板数据 public void SaveEntity(NWFSchemeInfoEntity currentSchemeInfo, NWFSchemeEntity commonScheme) { nWFSchemeService.SaveEntity(currentSchemeInfo, commonScheme); } /// /// 保存流程分类 /// /// 主键 /// 流程分类实体 public void CategorySaveEntity(string keyValue, NWFSchemeCategoryEntity entity) { nWFSchemeService.CategorySaveEntity(keyValue, entity); } /// /// 删除流程分类 /// /// 主键 /// 流程分类实体 public void CategoryDeleteEntity(string keyValue) { nWFSchemeService.CategoryDeleteEntity(keyValue); } /// /// 更新流程模板 /// /// 模板信息主键 /// 模板主键 public void UpdateScheme(string schemeInfoId, string schemeId) { nWFSchemeService.UpdateScheme(schemeInfoId, schemeId); } /// /// 更新自定义表单模板状态 /// /// 模板信息主键 /// 状态1启用0禁用 public void UpdateState(string schemeInfoId, int state) { nWFSchemeService.UpdateState(schemeInfoId, state); } /// /// 复制流程模板 /// /// 项目ID public void CopyScheme(string ProjectId) { string PLANTTYPE_PROJECT = ConstantBiz.PLANTTYPE_PROJECT; UserInfo userInfo = LoginUserInfo.Get(); //获取流程分类数据,类别为00002项目平台,项目Id为空 List schemeCategoryList = GetNWFSchemeCategoryEntityList(PLANTTYPE_PROJECT, null); if (schemeCategoryList.Count > 0) { foreach (var schemeCategory in schemeCategoryList) { //获取流程,类别为00002项目平台,项目ID List categoryInfoList_proj = GetNWFSchemeCategoryEntityList(PLANTTYPE_PROJECT, ProjectId); NWFSchemeCategoryEntity nWFSchemeCategoryEntity = categoryInfoList_proj.Find(p => p.ProjectId == ProjectId && p.PlantType == PLANTTYPE_PROJECT && p.ClassifyName == schemeCategory.ClassifyName); if (nWFSchemeCategoryEntity == null) { nWFSchemeCategoryEntity = new NWFSchemeCategoryEntity(); nWFSchemeCategoryEntity.ProjectId = ProjectId; nWFSchemeCategoryEntity.PlantType = PLANTTYPE_PROJECT; nWFSchemeCategoryEntity.ClassifyName = schemeCategory.ClassifyName; nWFSchemeCategoryEntity.CreateUserID = userInfo.userId; nWFSchemeCategoryEntity.CreateTime = DateTime.Now; CategorySaveEntity("", nWFSchemeCategoryEntity); } //根据分类Id,获取流程模板,项目Id为空的数据 List nWFSchemeInfoList = (List)GetInfoListByCategoryId(schemeCategory.FlowClassifyID); if (nWFSchemeInfoList.Count > 0) { foreach (var schemeInfo in nWFSchemeInfoList) { if (GetInfoEntityByCodeAndProjectId(schemeInfo.F_Code, ProjectId) == null) { NWFSchemeInfoEntity schemeInfoEntity = schemeInfo; NWFSchemeEntity schemeEntity = GetSchemeEntity(schemeInfoEntity.F_SchemeId); var nWFSchemeAuthList = (List)GetAuthList(schemeInfoEntity.F_Id); schemeInfoEntity.ProjectId = ProjectId; schemeInfoEntity.F_Category = nWFSchemeCategoryEntity.FlowClassifyID; schemeEntity.F_Type = 1; SaveEntity("", schemeInfoEntity, schemeEntity, nWFSchemeAuthList); } } } } } } #endregion } }