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
}
}