{"Message":"校验任务数据统计\r\n整理任务列表动态显示\r\n测试工时提交、修改工时、子任务校验","MessageType":2,"Modules":[{"State":1,"Type":7,"Name":"Table/任务成员表"},{"State":1,"Type":7,"Name":"Table/任务表"},{"State":1,"Type":1,"Name":"PCPage/任务列表"},{"State":1,"Type":1,"Name":"PCPage/任务-基本信息"},{"State":1,"Type":1,"Name":"PCPage/任务-工时"},{"State":1,"Type":1,"Name":"PCPage/新增报工"},{"State":1,"Type":15,"Name":"ServerCommand/修改任务预算工时"},{"State":1,"Type":15,"Name":"ServerCommand/上报实际工时"},{"State":1,"Type":15,"Name":"ServerCommand/分配任务工时"},{"State":1,"Type":15,"Name":"ServerCommand/任务发起流程前校验"},{"State":1,"Type":23,"Name":"TableView/任务平行视图"},{"State":1,"Type":31,"Name":"UserControlPage/任务统计信息"}],"Version":"v1"}

This commit is contained in:
超哥
2024-06-20 17:52:56 +08:00
parent 1e5824cc1a
commit dd84af267f
14 changed files with 995 additions and 514 deletions

View File

@@ -1,5 +1,375 @@
{
"Name": "任务平行视图",
"PermissionData": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionData, Forguncy.RbacPermission.Core",
"permissionResource": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionResource, Forguncy.RbacPermission.Core",
"enabledTypes": 2,
"isView": true,
"isExternal": true,
"detailTables": [
{
"subTableName": "任务平行视图",
"subColumnName": "父任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "任务成员视图",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "任务成员表",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "任务进展",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "任务评论表",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "View_任务工时统计",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "任务工时表",
"subColumnName": "任务ID",
"relatedColumnName": "ID"
},
{
"subTableName": "需求反馈登记表",
"subColumnName": "关联任务",
"relatedColumnName": "ID"
}
]
},
"permissionBindings": [
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowBindingConfig, Forguncy.RbacPermission.Core",
"operationTypes": 13,
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowFilter, Forguncy.RbacPermission.Core"
}
},
"dataPermissionType": 2,
"roleNames": [
"Administrator"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowBindingConfig, Forguncy.RbacPermission.Core",
"operationTypes": 5,
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowFilter, Forguncy.RbacPermission.Core",
"filterType": 1
}
},
"dataPermissionType": 2,
"roleNames": [
"项目总监",
"商务总监",
"财务"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowBindingConfig, Forguncy.RbacPermission.Core",
"operationTypes": 1,
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.RowFilter, Forguncy.RbacPermission.Core",
"userFieldName": "任务负责人",
"filterType": 4,
"condition": {
"$type": "ForguncyDataAccess.RelationSqlCondition, ForguncyDataAccess",
"SubConditions": [
{
"$type": "ForguncyDataAccess.GeneralCESqlCondition, ForguncyDataAccess",
"ColumnBindingInfo": {
"TableName": "任务平行视图",
"ColumnName": "任务负责人",
"GUID": "7853ff22-f892-43ec-b7ad-aaac4ab5d8a9"
},
"Value": "%CurrentUser.UserName%"
},
{
"$type": "ForguncyDataAccess.TextCESqlCondition, ForguncyDataAccess",
"CompareType": 6,
"ColumnBindingInfo": {
"TableName": "任务平行视图",
"ColumnName": "任务负责人",
"GUID": "d447b011-8562-47de-8716-6766969c93ed",
"AttachType": {
"$type": "ForguncyDataAccess.UserColumnAttachObj, ForguncyDataAccess",
"UserColumnAttachType": 8
}
},
"Value": "%CurrentUser.UserName%"
},
{
"$type": "ForguncyDataAccess.TextCESqlCondition, ForguncyDataAccess",
"CompareType": 6,
"ColumnBindingInfo": {
"TableName": "任务平行视图",
"ColumnName": "任务成员",
"GUID": "4c91846d-6f34-46f1-b890-bb350f51c1ac"
},
"Value": "%CurrentUser.UserName%"
},
{
"$type": "ForguncyDataAccess.GeneralCESqlCondition, ForguncyDataAccess",
"ColumnBindingInfo": {
"TableName": "任务平行视图",
"ColumnName": "项目ID",
"GUID": "e8cbf68a-86d8-4cfd-89bc-00ce385c40b2",
"RelationBinding": {
"RelatedTable": "项目平行视图",
"RelatedColumn": "ID",
"DisplayColumn": "项目经理"
}
},
"Value": "%CurrentUser.UserName%"
}
],
"RelationType": 1
}
}
},
"dataPermissionType": 2,
"roleNames": [
"FGC_LoginUser"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.CreateRecordBindingConfig, Forguncy.RbacPermission.Core",
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.CreateRecordFilter, Forguncy.RbacPermission.Core"
}
},
"dataPermissionType": 1,
"roleNames": [
"FGC_LoginUser"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldBindingConfig, Forguncy.RbacPermission.Core",
"fieldOperations": {
"ID": 1,
"任务名称": 5,
"任务成员": 5,
"任务状态": 5,
"任务类型": 5,
"任务说明": 5,
"任务负责人": 5,
"任务预算工时": 5,
"关联资源": 5,
"分组ID": 5,
"前置任务": 5,
"功能名称": 5,
"功能描述": 5,
"可分配工时": 5,
"可核定工时": 5,
"备注": 5,
"实际工时": 5,
"层级": 5,
"工期": 5,
"已分配工时": 5,
"已分配工时_总分配工时": 5,
"开始时间": 5,
"总分配工时": 5,
"总核定工时": 5,
"总核定工时_已分配工时": 5,
"成员数量": 5,
"收集反馈": 5,
"次序": 5,
"流程实例ID": 5,
"父任务ID": 5,
"版本": 5,
"结束时间": 5,
"进度": 5,
"里程碑": 5,
"项目ID": 5,
"本任务已分配工时": 5,
"子任务已分配工时": 5,
"本任务核定工时": 5,
"子任务核定工时": 5,
"本任务可核定工时": 5,
"子任务可核定工时": 5,
"本任务实际工时": 5,
"子任务实际工时": 5
},
"subTableOperations": {
"View_任务工时统计": 5,
"任务工时表": 5,
"任务平行视图": 5,
"任务成员表": 5,
"任务成员视图": 5,
"任务评论表": 5,
"任务进展": 5,
"需求反馈登记表": 5
},
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldFilter, Forguncy.RbacPermission.Core"
}
},
"dataPermissionType": 4,
"roleNames": [
"Administrator"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldBindingConfig, Forguncy.RbacPermission.Core",
"fieldOperations": {
"ID": 1,
"任务名称": 5,
"任务成员": 5,
"任务状态": 5,
"任务类型": 5,
"任务说明": 5,
"任务负责人": 5,
"任务预算工时": 5,
"关联资源": 5,
"分组ID": 5,
"前置任务": 5,
"功能名称": 5,
"功能描述": 5,
"可分配工时": 5,
"可核定工时": 5,
"备注": 5,
"实际工时": 5,
"层级": 5,
"工期": 5,
"已分配工时": 5,
"已分配工时_总分配工时": 5,
"开始时间": 5,
"总分配工时": 5,
"总核定工时": 5,
"总核定工时_已分配工时": 5,
"成员数量": 5,
"收集反馈": 5,
"次序": 5,
"流程实例ID": 5,
"父任务ID": 5,
"版本": 5,
"结束时间": 5,
"进度": 5,
"里程碑": 5,
"项目ID": 5,
"本任务已分配工时": 5,
"子任务已分配工时": 5,
"本任务核定工时": 5,
"子任务核定工时": 5,
"本任务可核定工时": 5,
"子任务可核定工时": 5,
"本任务实际工时": 5,
"子任务实际工时": 5
},
"subTableOperations": {
"View_任务工时统计": 5,
"任务工时表": 5,
"任务平行视图": 5,
"任务成员表": 5,
"任务成员视图": 5,
"任务评论表": 5,
"任务进展": 5,
"需求反馈登记表": 5
},
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldFilter, Forguncy.RbacPermission.Core"
}
},
"dataPermissionType": 4,
"roleNames": [
"FGC_LoginUser"
]
},
{
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionBinding, Forguncy.RbacPermission.Core",
"config": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldBindingConfig, Forguncy.RbacPermission.Core",
"fieldOperations": {
"ID": 1,
"任务名称": 5,
"任务成员": 5,
"任务状态": 5,
"任务类型": 5,
"任务说明": 5,
"任务负责人": 5,
"任务预算工时": 5,
"关联资源": 5,
"分组ID": 5,
"前置任务": 5,
"功能名称": 5,
"功能描述": 5,
"可分配工时": 5,
"可核定工时": 5,
"备注": 5,
"实际工时": 5,
"层级": 5,
"工期": 5,
"已分配工时": 5,
"已分配工时_总分配工时": 5,
"开始时间": 5,
"总分配工时": 5,
"总核定工时": 5,
"总核定工时_已分配工时": 5,
"成员数量": 5,
"收集反馈": 5,
"次序": 5,
"流程实例ID": 5,
"父任务ID": 5,
"版本": 5,
"结束时间": 5,
"进度": 5,
"里程碑": 5,
"项目ID": 5,
"本任务已分配工时": 5,
"子任务已分配工时": 5,
"本任务核定工时": 5,
"子任务核定工时": 5,
"本任务可核定工时": 5,
"子任务可核定工时": 5,
"本任务实际工时": 5,
"子任务实际工时": 5
},
"subTableOperations": {
"View_任务工时统计": 5,
"任务工时表": 5,
"任务平行视图": 5,
"任务成员表": 5,
"任务成员视图": 5,
"任务评论表": 5,
"任务进展": 5,
"需求反馈登记表": 5
},
"dataFilter": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.FieldFilter, Forguncy.RbacPermission.Core"
}
},
"dataPermissionType": 4,
"roleNames": [
"FGC_Anonymous"
]
}
]
},
"Columns": [
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
@@ -221,6 +591,22 @@
"Name": "已分配工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "本任务已分配工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "子任务已分配工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"DatabaseColumnType": "float",
@@ -236,6 +622,22 @@
"Name": "总核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "本任务核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "子任务核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"DatabaseColumnType": "float",
@@ -243,6 +645,22 @@
"Name": "可核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "本任务可核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "子任务可核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
@@ -251,6 +669,22 @@
"Name": "实际工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "本任务实际工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "子任务实际工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"DatabaseColumnType": "int",
@@ -276,6 +710,12 @@
"Formula": "[总核定工时]&\"/\"&[已分配工时]",
"Name": "总核定工时_已分配工时",
"ColumnType": "System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.FormulaColumnSaveData, ServerDesignerCommon",
"Formula": "=IF([任务类型]=3,[本任务可核定工时],[可分配工时])",
"Name": "动态可核定工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
}
],
"ExternalDatabaseInfo": {
@@ -284,7 +724,7 @@
"ConnectionId": "业务表",
"SourceTableName": "任务平行视图",
"SourceTableSchema": "dbo",
"CreateViewSql": "WITH [任务递归CTE] AS (-- CTE to gather all tasks and their child tasks\r\n\tSELECT\r\n\t\tt.ID,\r\n\t\tt.[父任务ID],\r\n\t\tt.[任务预算工时],\r\n\t\tCAST ( t.ID AS VARCHAR ( MAX ) ) AS TaskPath,\r\n\t\t0 AS Depth \r\n\tFROM\r\n\t\t任务表 t \r\n\tWHERE\r\n\t\tt.[父任务ID] IS NULL UNION ALL\r\n\tSELECT\r\n\t\tt.ID,\r\n\t\tt.[父任务ID],\r\n\t\tt.任务预算工时,\r\n\t\tCAST ( cte.TaskPath + '->' + CAST ( t.ID AS VARCHAR ( 50 ) ) AS VARCHAR ( MAX ) ) AS TaskPath,\r\n\t\tcte.Depth + 1 AS Depth \r\n\tFROM\r\n\t\t任务表 t\r\n\t\tINNER JOIN [任务递归CTE] cte ON t.[父任务ID] = cte.ID \r\n\t),\r\n\t汇总工时 AS (-- Gather plan hours and actual hours from 任务工时表\r\n\tSELECT\r\n\t\t[任务ID],\r\n\t\tSUM ( CASE WHEN 工时类型 = '计划' THEN 工时 ELSE 0 END ) AS 计划工时汇总,\r\n\t\tSUM ( CASE WHEN 工时类型 = '实际' THEN 工时 ELSE 0 END ) AS 核定工时汇总,\r\n\t\tSUM ( CASE WHEN 工时类型 = '实际' THEN 上报工时 ELSE 0 END ) AS 实际工时汇总 \r\n\tFROM\r\n\t\t任务工时表 \r\n\tGROUP BY\r\n\t\t[任务ID] \r\n\t),\r\n\t任务汇总 AS (-- Sum up task hours with recursive sum of child tasks\r\n\tSELECT\r\n\t\tcte.ID,\r\n\t\tISNULL( SUM ( c.任务预算工时 ), 0 ) AS 子任务分配工时 \r\n\tFROM\r\n\t\t[任务递归CTE] cte\r\n\t\tLEFT JOIN 任务表 c ON c.[父任务ID] = cte.ID \r\n\tGROUP BY\r\n\t\tcte.ID \r\n\t),\r\n\t任务成员 AS ( \r\n\tSELECT \r\n\t[任务ID],\r\n\tSTRING_AGG ([任务成员],',') AS 任务成员,\r\n\tcount(*) AS [成员数量] \r\n\tFROM [任务成员表] \r\n\tGROUP BY [任务ID] \r\n\t)\r\n\t -- Final view definition\r\nSELECT\r\n\tt.*,\r\n\tt.任务预算工时 AS 总分配工时,\r\n\tISNULL( 汇总.计划工时汇总, 0 ) + ISNULL( 任务汇总.子任务分配工时, 0 ) AS 已分配工时,\r\n\tt.任务预算工时 - ( ISNULL( 汇总.计划工时汇总, 0 ) + ISNULL( 任务汇总.子任务分配工时, 0 ) ) AS 可分配工时,\r\n\tISNULL( 汇总.核定工时汇总, 0 ) AS 核定工时,\r\n\t( t.任务预算工时 - ( ISNULL( 汇总.计划工时汇总, 0 ) + ISNULL( 任务汇总.子任务分配工时, 0 ) ) ) - ISNULL( 汇总.核定工时汇总, 0 ) AS 可核定工时,\r\n\tISNULL( 汇总.实际工时汇总, 0 ) AS 实际工时,\r\n\t成员.[成员数量],\r\n\t成员.[任务成员]\r\nFROM\r\n\t任务表 t\r\n\tLEFT JOIN 汇总工时 汇总 ON t.ID = 汇总.[任务ID]\r\n\tLEFT JOIN 任务汇总 任务汇总 ON t.ID = 任务汇总.ID\r\n\tLEFT JOIN 任务成员 成员 ON t.ID = 成员.[任务ID];",
"CreateViewSql": "WITH [任务递归CTE] AS (-- CTE to gather all tasks and their child tasks\r\n\tSELECT\r\n\t\tt.ID,\r\n\t\tt.[父任务ID],\r\n\t\tt.[任务预算工时],\r\n\t\tCAST ( t.ID AS VARCHAR ( MAX ) ) AS TaskPath,\r\n\t\t0 AS Depth \r\n\tFROM\r\n\t\t任务表 t \r\n\tWHERE\r\n\t\tt.[父任务ID] IS NULL\r\n\t\t\r\n\t\tUNION ALL\r\n\tSELECT\r\n\t\tt.ID,\r\n\t\tt.[父任务ID],\r\n\t\tt.任务预算工时,\r\n\t\tCAST ( cte.TaskPath + '->' + CAST ( t.ID AS VARCHAR ( 50 ) ) AS VARCHAR ( MAX ) ) AS TaskPath,\r\n\t\tcte.Depth + 1 AS Depth \r\n\tFROM\r\n\t\t任务表 t\r\n\t\tINNER JOIN [任务递归CTE] cte ON t.[父任务ID] = cte.ID\r\n\t),\r\n\t汇总工时 AS (-- Gather plan hours and actual hours from 任务工时表\r\n\tSELECT\r\n\t\t[任务ID],\r\n\t\tSUM ( CASE WHEN 工时类型 = '计划' THEN 工时 ELSE 0 END ) AS 计划工时汇总,\r\n\t\tSUM ( CASE WHEN 工时类型 = '实际' THEN 工时 ELSE 0 END ) AS 核定工时汇总,\r\n\t\tSUM ( CASE WHEN 工时类型 = '实际' THEN 上报工时 ELSE 0 END ) AS 实际工时汇总 \r\n\tFROM\r\n\t\t任务工时表 \r\n\tGROUP BY\r\n\t\t[任务ID] \r\n\t),\r\n\t任务汇总 AS (-- Sum up task hours with recursive sum of child tasks\r\n\tSELECT\r\n\t\tcte.ID,\r\n\t\tISNULL( SUM ( c.任务预算工时 ), 0 ) AS 子任务分配工时 \r\n\tFROM\r\n\t\t[任务递归CTE] cte\r\n\t\tLEFT JOIN 任务表 c ON c.[父任务ID] = cte.ID AND c.[任务状态]>=1\r\n\tGROUP BY\r\n\t\tcte.ID \r\n\t),\r\n\t子任务核定工时汇总 AS (\r\n SELECT\r\n cte.ID,\r\n ISNULL(SUM(汇总.核定工时汇总), 0) AS 子任务核定工时汇总\r\n FROM\r\n [任务递归CTE] cte\r\n LEFT JOIN 任务表 c ON c.[父任务ID] = cte.ID\r\n LEFT JOIN 汇总工时 汇总 ON c.ID = 汇总.[任务ID]\r\n GROUP BY\r\n cte.ID\r\n),\r\n子任务实际工时汇总 AS (\r\n SELECT\r\n cte.ID,\r\n ISNULL(SUM(汇总.实际工时汇总), 0) AS 子任务实际工时汇总\r\n FROM\r\n [任务递归CTE] cte\r\n LEFT JOIN 任务表 c ON c.[父任务ID] = cte.ID\r\n LEFT JOIN 汇总工时 汇总 ON c.ID = 汇总.[任务ID]\r\n GROUP BY\r\n cte.ID\r\n),\r\n\t任务成员 AS ( \r\n\tSELECT \r\n\t[任务ID],\r\n\tSTRING_AGG ([任务成员],',') AS 任务成员,\r\n\tcount(*) AS [成员数量] \r\n\tFROM [任务成员表] \r\n\tGROUP BY [任务ID] \r\n\t)\r\n-- Final view definition\r\nSELECT\r\n t.*,\r\n t.任务预算工时 AS 总分配工时,\r\n ISNULL(汇总.计划工时汇总, 0) + ISNULL(任务汇总.子任务分配工时, 0) AS 已分配工时,\r\n\t\tISNULL(汇总.计划工时汇总, 0) AS 本任务已分配工时,\r\n\t\tISNULL(任务汇总.子任务分配工时, 0) AS 子任务已分配工时,\r\n t.任务预算工时 - (ISNULL(汇总.计划工时汇总, 0) + ISNULL(任务汇总.子任务分配工时, 0)) AS 可分配工时,\r\n ISNULL(汇总.核定工时汇总, 0) + ISNULL(子任务核定工时汇总.子任务核定工时汇总, 0) AS 总核定工时,\r\n\t\tISNULL(汇总.核定工时汇总, 0) AS 本任务核定工时,\r\n\t\tISNULL(子任务核定工时汇总.子任务核定工时汇总, 0) AS 子任务核定工时,\r\n (t.任务预算工时 - (ISNULL(汇总.核定工时汇总, 0) + ISNULL(子任务核定工时汇总.子任务核定工时汇总, 0))) AS 可核定工时,\r\n\t\tISNULL(汇总.计划工时汇总, 0) - ISNULL(汇总.核定工时汇总, 0) AS 本任务可核定工时,\r\n\t\tISNULL(任务汇总.子任务分配工时, 0) - ISNULL(子任务核定工时汇总.子任务核定工时汇总, 0) AS 子任务可核定工时,\r\n ISNULL(汇总.实际工时汇总, 0) + ISNULL(子任务实际工时汇总.子任务实际工时汇总, 0) AS 实际工时,\r\n\t\tISNULL(汇总.实际工时汇总, 0) AS 本任务实际工时,\r\n\t\tISNULL(子任务实际工时汇总.子任务实际工时汇总, 0) AS 子任务实际工时,\r\n 成员.[成员数量],\r\n 成员.[任务成员]\r\nFROM\r\n 任务表 t\r\n LEFT JOIN 汇总工时 汇总 ON t.ID = 汇总.[任务ID]\r\n LEFT JOIN 任务汇总 任务汇总 ON t.ID = 任务汇总.ID\r\n LEFT JOIN 子任务核定工时汇总 子任务核定工时汇总 ON t.ID = 子任务核定工时汇总.ID\r\n LEFT JOIN 任务实际工时汇总 任务实际工时汇总 ON t.ID = 任务实际工时汇总.ID\r\n LEFT JOIN 任务成员 成员 ON t.ID = 成员.[任务ID];",
"ViewInfo": {
"ViewName": "任务平行视图",
"QueryColumns": [

View File

@@ -13,6 +13,7 @@
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "bigint",
"MaxLength": -1,
"Name": "项目ID",
@@ -20,6 +21,7 @@
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "bigint",
"MaxLength": -1,
"Name": "任务ID",
@@ -27,6 +29,7 @@
},
{
"$type": "Forguncy.SaveLoad.UserBindingColumnSaveData, ServerDesignerCommon",
"Required": true,
"DatabaseColumnType": "nvarchar",
"MaxLength": -1,
"Name": "任务成员",

View File

@@ -4,7 +4,6 @@
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionData, Forguncy.RbacPermission.Core",
"permissionResource": {
"$type": "Forguncy.RbacPermission.Core.Impl.Data.DataPermissionResource, Forguncy.RbacPermission.Core",
"enabledTypes": 2,
"isExternal": true,
"detailTables": [
{