{"Message":"1. 删除工时核定方式字段,及全局使用;\r\n2. 全局修改思路,按实际工时计算收益,计划工时只用于校验实际工时是否超标;\r\n3. 增加“工时分配方式”字段,用于扩展不同的计划工时分配方案","MessageType":2,"Modules":[{"State":1,"Type":23,"Name":"TableView/子任务视图"},{"State":1,"Type":23,"Name":"TableView/View_任务工时统计"},{"State":1,"Type":23,"Name":"TableView/人员工时统计视图"},{"State":1,"Type":23,"Name":"TableView/View_项目统计信息"},{"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":1,"Name":"PCPage/项目审批"},{"State":1,"Type":1,"Name":"PCPage/项目标题"},{"State":1,"Type":15,"Name":"ServerCommand/新增任务"},{"State":1,"Type":15,"Name":"ServerCommand/新增工时"},{"State":1,"Type":1,"Name":"PCPage/项目成员"},{"State":1,"Type":15,"Name":"ServerCommand/修改任务预算工时"},{"State":1,"Type":15,"Name":"ServerCommand/新增或修改项目"},{"State":1,"Type":18,"Name":"RdlReport/工时报表"},{"State":1,"Type":1,"Name":"PCPage/收益中心-收益明细"},{"State":1,"Type":1,"Name":"PCPage/提交结算申请单"},{"State":1,"Type":1,"Name":"PCPage/审批结算申请单"},{"State":3,"Type":1,"Name":"PCPage/项目预算申请历史"},{"State":3,"Type":7,"Name":"Table/工时分配方式"}],"Version":"v1"}

This commit is contained in:
SHAMUSPC\NINGMEI
2024-03-30 17:05:32 +08:00
parent c9093a1ce4
commit eeca27cd77
28 changed files with 1589 additions and 1279 deletions

View File

@@ -30,13 +30,6 @@
"Name": "项目预算费用",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"DatabaseColumnType": "varchar",
"MaxLength": -1,
"Name": "工时核定方式",
"ColumnType": "System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"Required": true,
@@ -53,14 +46,6 @@
"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,
@@ -101,6 +86,13 @@
"Name": "未完成任务数",
"ColumnType": "System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.BindingColumnSaveData, ServerDesignerCommon",
"DatabaseColumnType": "float",
"MaxLength": -1,
"Name": "已分配任务工时",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.FormulaColumnSaveData, ServerDesignerCommon",
"Formula": "[已完成任务数]&\"/\"&[总任务数量]",
@@ -127,7 +119,7 @@
},
{
"$type": "Forguncy.SaveLoad.FormulaColumnSaveData, ServerDesignerCommon",
"Formula": "[总核定工时]&\"/\"&[项目预算工时]",
"Formula": "[总实际工时]&\"/\"&[项目预算工时]",
"Name": "工时成本情况",
"ColumnType": "System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
@@ -139,7 +131,7 @@
},
{
"$type": "Forguncy.SaveLoad.FormulaColumnSaveData, ServerDesignerCommon",
"Formula": "IF([总核定工时]=0,0,INT([总核定工时]/[项目预算工时]*100))",
"Formula": "IF([总实际工时]=0,0,INT([总实际工时]/[项目预算工时]*100))",
"Name": "工时消耗比例",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
@@ -154,6 +146,12 @@
"Formula": "IF([总实际工时]=0,0,INT([总实际工时]/[总计划工时]*100))",
"Name": "计划工时使用比例",
"ColumnType": "System.Double, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
},
{
"$type": "Forguncy.SaveLoad.FormulaColumnSaveData, ServerDesignerCommon",
"Formula": "[已分配任务工时]&\"/\"&[项目预算工时]",
"Name": "工时分配情况",
"ColumnType": "System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
}
],
"ExternalDatabaseInfo": {
@@ -161,7 +159,7 @@
"ConnectionId": "业务表",
"SourceTableName": "View_项目统计信息",
"SourceTableSchema": "dbo",
"CreateViewSql": "SELECT\r\n p.[ID] AS [项目ID],\r\n p.[项目名称] AS [项目标题],\r\n p.[项目预算工时],\r\n p.[项目预算费用],\r\n\t\tp.[工时核定方式],\r\n ISNULL(计划工时.总计划工时, 0) AS [总计划工时],\r\n ISNULL(实际工时.总实际工时, 0) AS [总实际工时],\r\n\t\t(CASE p.[工时核定方式]\r\n\tWHEN '计划' THEN ISNULL(计划工时.总计划工时, 0)\r\n\tELSE ISNULL(实际工时.总实际工时, 0)\r\nEND) as 总核定工时,\r\n ISNULL(总成本.总成本, 0) AS [总成本],\r\n ISNULL(项目成员.成员数量, 0) AS [项目成员数],\r\n ISNULL(任务统计.总任务数量, 0) AS [总任务数量],\r\n ISNULL(已完成任务.已完成任务数, 0) AS [已完成任务数],\r\n ISNULL(未完成任务.未完成任务数, 0) AS [未完成任务数]\r\nFROM\r\n [dbo].[项目表] p\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时) AS 总计划工时\r\n FROM\r\n [dbo].[任务工时表]\r\n WHERE\r\n 工时类型 = '计划'\r\n GROUP BY\r\n 项目ID\r\n) 计划工时 ON p.ID = 计划工时.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时) AS 总实际工时\r\n FROM\r\n [dbo].[任务工时表]\r\n WHERE\r\n 工时类型 = '实际'\r\n GROUP BY\r\n 项目ID\r\n) 实际工时 ON p.ID = 实际工时.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时 * 时薪单价 * 提成系数) AS 总成本\r\n FROM\r\n [dbo].[任务工时表]\r\n WHERE\r\n 工时类型 IN (SELECT 工时核定方式 FROM [dbo].[项目表] WHERE ID = 项目ID)\r\n GROUP BY\r\n 项目ID\r\n) 总成本 ON p.ID = 总成本.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(DISTINCT 执行人) AS 成员数量\r\n FROM\r\n [dbo].[任务工时表]\r\n GROUP BY\r\n 项目ID\r\n) 项目成员 ON p.ID = 项目成员.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 总任务数量\r\n FROM\r\n [dbo].[任务表]\r\n GROUP BY\r\n 项目ID\r\n) 任务统计 ON p.ID = 任务统计.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 已完成任务数\r\n FROM\r\n [dbo].[任务表]\r\n WHERE\r\n 任务状态 = 2\r\n GROUP BY\r\n 项目ID\r\n) 已完成任务 ON p.ID = 已完成任务.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 未完成任务数\r\n FROM\r\n [dbo].[任务表]\r\n WHERE\r\n 任务状态 < 2\r\n GROUP BY\r\n 项目ID\r\n) 未完成任务 ON p.ID = 未完成任务.项目ID;",
"CreateViewSql": "SELECT\r\n p.[ID] AS [项目ID],\r\n p.[项目名称] AS [项目标题],\r\n p.[项目预算工时],\r\n p.[项目预算费用],\r\n ISNULL(计划工时.总计划工时, 0) AS [总计划工时],\r\n ISNULL(实际工时.总实际工时, 0) AS [总实际工时],\r\n ISNULL(总成本.总成本, 0) AS [总成本],\r\n ISNULL(项目成员.成员数量, 0) AS [项目成员数],\r\n ISNULL(任务统计.总任务数量, 0) AS [总任务数量],\r\n ISNULL(已完成任务.已完成任务数, 0) AS [已完成任务数],\r\n ISNULL(未完成任务.未完成任务数, 0) AS [未完成任务数],\r\n\t\tSUM(ISNULL(task.任务预算工时, 0)) as 已分配任务工时\r\nFROM\r\n [dbo].[项目表] p\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时) AS 总计划工时\r\n FROM\r\n [dbo].[任务工时表]\r\n WHERE\r\n 工时类型 = '计划'\r\n GROUP BY\r\n 项目ID\r\n) 计划工时 ON p.ID = 计划工时.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时) AS 总实际工时\r\n FROM\r\n [dbo].[任务工时表]\r\n WHERE\r\n 工时类型 = '实际'\r\n GROUP BY\r\n 项目ID\r\n) 实际工时 ON p.ID = 实际工时.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n SUM(工时 * 时薪单价 * 提成系数) AS 总成本\r\n FROM\r\n [dbo].[任务工时表]\r\n GROUP BY\r\n 项目ID\r\n) 总成本 ON p.ID = 总成本.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(DISTINCT 执行人) AS 成员数量\r\n FROM\r\n [dbo].[任务工时表]\r\n GROUP BY\r\n 项目ID\r\n) 项目成员 ON p.ID = 项目成员.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 总任务数量\r\n FROM\r\n [dbo].[任务表]\r\n GROUP BY\r\n 项目ID\r\n) 任务统计 ON p.ID = 任务统计.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 已完成任务数\r\n FROM\r\n [dbo].[任务表]\r\n WHERE\r\n 任务状态 = 2\r\n GROUP BY\r\n 项目ID\r\n) 已完成任务 ON p.ID = 已完成任务.项目ID\r\nLEFT JOIN (\r\n SELECT\r\n 项目ID,\r\n COUNT(ID) AS 未完成任务数\r\n FROM\r\n [dbo].[任务表]\r\n WHERE\r\n 任务状态 < 2\r\n GROUP BY\r\n 项目ID\r\n) 未完成任务 ON p.ID = 未完成任务.项目ID\r\nLEFT JOIN [任务表] task ON p.ID = task.[项目ID]\r\nGROUP BY \r\np.[ID],\r\np.[项目名称],\r\np.[项目预算工时],\r\np.[项目预算费用],\r\n计划工时.总计划工时,\r\n实际工时.总实际工时,\r\n总成本.总成本,\r\n项目成员.成员数量,\r\n任务统计.总任务数量,\r\n已完成任务.已完成任务数,\r\n未完成任务.未完成任务数;",
"ViewInfo": {
"ViewName": "View_项目统计信息",
"IsUpdatable": true,