From bec199bc722854e3fa5b341350185de170ec6e5e Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 2 Dec 2025 16:35:04 +0800 Subject: [PATCH] =?UTF-8?q?*=20[task#153180,doing,10h,6h]=20Add=20risk?= =?UTF-8?q?=E3=80=81issue=20and=20opportunity=20module=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update22.0.sql | 46 ++++++++++++++++++++------- db/zentao.sql | 34 ++++++++++++++++---- module/my/model.php | 3 ++ module/upgrade/config/upgradeflow.php | 4 +-- 4 files changed, 67 insertions(+), 20 deletions(-) diff --git a/db/update22.0.sql b/db/update22.0.sql index f89706943c..fb338139bd 100644 --- a/db/update22.0.sql +++ b/db/update22.0.sql @@ -1,16 +1,16 @@ ALTER TABLE `zt_workflowgroup` CHANGE `projectModel` `projectModel` varchar(30) NOT NULL DEFAULT ''; INSERT INTO `zt_workflowgroup` (`type`, `projectModel`, `projectType`, `name`, `code`, `status`, `vision`, `main`) VALUES -('project', 'agileplus', 'product', '融合敏捷式产品研发', 'agileplusproduct', 'normal', 'rnd', '1'), -('project', 'agileplus', 'project', '融合敏捷式项目研发', 'agileplusproject', 'normal', 'rnd', '1'), -('project', 'waterfallplus', 'product', '融合瀑布式产品研发', 'waterfallplusproduct', 'normal', 'rnd', '1'), -('project', 'waterfallplus', 'project', '融合瀑布式项目研发', 'waterfallplusproject', 'normal', 'rnd', '1'), -('project', 'kanban', 'product', '看板式产品研发', 'kanbanproduct', 'normal', 'rnd', '1'), -('project', 'kanban', 'project', '看板式项目研发', 'kanbanproject', 'normal', 'rnd', '1'), -('project', 'ipd', 'ipd', 'IPD集成产品研发', 'ipdproduct', 'normal', 'rnd', '1'), -('project', 'ipd', 'tpd', 'IPD预研产品研发', 'tpdproduct', 'normal', 'rnd', '1'), -('project', 'ipd', 'cbb', 'IPD平台产品研发', 'cbbproduct', 'normal', 'rnd', '1'), -('project', 'ipd', 'cpdproduct', 'IPD定制产品研发', 'cpdproduct', 'normal', 'rnd', '1'), -('project', 'ipd', 'cpdproject', 'IPD定制项目研发', 'cpdproject', 'normal', 'rnd', '1'); +('project', 'agileplus', 'product', '融合敏捷式产品研发', 'agileplusproduct', 'normal', 'rnd', '1'), +('project', 'agileplus', 'project', '融合敏捷式项目研发', 'agileplusproject', 'normal', 'rnd', '1'), +('project', 'waterfallplus', 'product', '融合瀑布式产品研发', 'waterfallplusproduct', 'normal', 'rnd', '1'), +('project', 'waterfallplus', 'project', '融合瀑布式项目研发', 'waterfallplusproject', 'normal', 'rnd', '1'), +('project', 'kanban', 'product', '看板式产品研发', 'kanbanproduct', 'normal', 'rnd', '1'), +('project', 'kanban', 'project', '看板式项目研发', 'kanbanproject', 'normal', 'rnd', '1'), +('project', 'ipd', 'ipd', 'IPD集成产品研发', 'ipdproduct', 'normal', 'rnd', '1'), +('project', 'ipd', 'tpd', 'IPD预研产品研发', 'tpdproduct', 'normal', 'rnd', '1'), +('project', 'ipd', 'cbb', 'IPD平台产品研发', 'cbbproduct', 'normal', 'rnd', '1'), +('project', 'ipd', 'cpdproduct', 'IPD定制产品研发', 'cpdproduct', 'normal', 'rnd', '1'), +('project', 'ipd', 'cpdproject', 'IPD定制项目研发', 'cpdproject', 'normal', 'rnd', '1'); ALTER TABLE `zt_doc` ADD `isDeliverable` tinyint unsigned NOT NULL DEFAULT 0 AFTER `acl`; ALTER TABLE `zt_deliverable` ADD `workflowGroup` int(8) NOT NULL DEFAULT '0' AFTER `id`; @@ -227,7 +227,29 @@ INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision` ('lang', '项目变更紧急等级', 'projectchangeUrgencyList', '1', 'rnd', 'admin', null, 'projectchangeUrgencyList', '', '', ''), ('lang', '项目变更类型', 'projectchangeTypeList', '1', 'rnd', 'admin', null, 'projectchangeTypeList', '', '', ''), ('lang', '项目变更状态', 'projectchangeStatus', '1', 'rnd', 'admin', null, 'projectchangeStatus', '', '', ''), -('lang', '项目变更审批结果', 'projectchangeReviewResult', '1', 'rnd', 'admin', null, 'projectchangeReviewResult', '', '', ''); +('lang', '项目变更审批结果', 'projectchangeReviewResult', '1', 'rnd', 'admin', null, 'projectchangeReviewResult', '', '', ''), +('lang', '风险来源', 'riskSource', '1', 'rnd', 'admin', null, 'riskSource', '', '', ''), +('lang', '风险类型', 'riskCategory', '1', 'rnd', 'admin', null, 'riskCategory', '', '', ''), +('lang', '风险策略', 'riskStrategy', '1', 'rnd', 'admin', null, 'riskStrategy', '', '', ''), +('lang', '风险状态', 'riskStatus', '1', 'rnd', 'admin', null, 'riskStatus', '', '', ''), +('lang', '风险影响程度', 'riskImpact', '1', 'rnd', 'admin', null, 'riskImpact', '', '', ''), +('lang', '风险发生概率', 'riskProbability', '1', 'rnd', 'admin', null, 'riskProbability', '', '', ''), +('lang', '风险系数', 'riskRate', '1', 'rnd', 'admin', null, 'riskRate', '', '', ''), +('lang', '风险优先级', 'riskPri', '1', 'rnd', 'admin', null, 'riskPri', '', '', ''), +('lang', '风险取消原因', 'riskCancelReason', '1', 'rnd', 'admin', null, 'riskCancelReason', '', '', ''), +('lang', '问题优先级', 'issuePri', '1', 'rnd', 'admin', null, 'issuePri', '', '', ''), +('lang', '问题严重程度', 'issueSeverity', '1', 'rnd', 'admin', null, 'issueSeverity', '', '', ''), +('lang', '问题类型', 'issueType', '1', 'rnd', 'admin', null, 'issueType', '', '', ''), +('lang', '4问题解决方式', 'issueResolution', '1', 'rnd', 'admin', null, 'issueResolution', '', '', ''), +('lang', '问题状态', 'issueStatus', '1', 'rnd', 'admin', null, 'issueStatus', '', '', ''), +('lang', '机会来源', 'opportunitySource', '1', 'rnd', 'admin', null, 'opportunitySource', '', '', ''), +('lang', '机会类型', 'opportunityType', '1', 'rnd', 'admin', null, 'opportunityType', '', '', ''), +('lang', '机会策略', 'opportunityStrategy', '1', 'rnd', 'admin', null, 'opportunityStrategy', '', '', ''), +('lang', '机会状态', 'opportunityStatus', '1', 'rnd', 'admin', null, 'opportunityStatus', '', '', ''), +('lang', '机会影响程度', 'opportunityImpact', '1', 'rnd', 'admin', null, 'opportunityImpact', '', '', ''), +('lang', '机会发生概率', 'opportunityChance', '1', 'rnd', 'admin', null, 'opportunityChance', '', '', ''), +('lang', '机会优先级', 'opportunityPri', '1', 'rnd', 'admin', null, 'opportunityPri', '', '', ''), +('lang', '机会取消原因', 'opportunityCancelReason', '1', 'rnd', 'admin', null, 'opportunityCancelReason', '', '', ''); ALTER TABLE `zt_story` ADD `frozen` varchar(30) NOT NULL DEFAULT '' COMMENT '冻结状态' AFTER `verifiedDate`; ALTER TABLE `zt_design` ADD `frozen` varchar(30) NOT NULL DEFAULT '' COMMENT '冻结状态' AFTER `desc`; diff --git a/db/zentao.sql b/db/zentao.sql index 51ee38238e..b22c436315 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -13897,12 +13897,34 @@ INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision` ('lang', '立项关闭原因', 'charterCloseReason', '1', 'rnd', 'admin', null, 'charterCloseReason', '', '', ''), ('lang', '立项审批结果', 'charterReviewResult', '1', 'rnd', 'admin', null, 'charterReviewResult', '', '', ''), ('lang', '立项审批状态', 'charterReviewStatus', '1', 'rnd', 'admin', null, 'charterReviewStatus', '', '', ''), -('lang', '基线状态', 'baselineStatus', '1', 'rnd', 'admin', null, 'baselineStatus', '', '', ''), -('lang', '基线审批结果', 'baselineReviewResult', '1', 'rnd', 'admin', null, 'baselineReviewResult', '', '', ''), -('lang', '项目变更紧急等级', 'projectchangeUrgencyList', '1', 'rnd', 'admin', null, 'projectchangeUrgencyList', '', '', ''), -('lang', '项目变更类型', 'projectchangeTypeList', '1', 'rnd', 'admin', null, 'projectchangeTypeList', '', '', ''), -('lang', '项目变更状态', 'projectchangeStatus', '1', 'rnd', 'admin', null, 'projectchangeStatus', '', '', ''), -('lang', '项目变更审批结果', 'projectchangeReviewResult', '1', 'rnd', 'admin', null, 'projectchangeReviewResult', '', '', ''); +('lang', '基线状态', 'baselineStatus', '1', 'rnd', 'admin', null, 'baselineStatus', '', '', ''), +('lang', '基线审批结果', 'baselineReviewResult', '1', 'rnd', 'admin', null, 'baselineReviewResult', '', '', ''), +('lang', '项目变更紧急等级', 'projectchangeUrgencyList', '1', 'rnd', 'admin', null, 'projectchangeUrgencyList', '', '', ''), +('lang', '项目变更类型', 'projectchangeTypeList', '1', 'rnd', 'admin', null, 'projectchangeTypeList', '', '', ''), +('lang', '项目变更状态', 'projectchangeStatus', '1', 'rnd', 'admin', null, 'projectchangeStatus', '', '', ''), +('lang', '项目变更审批结果', 'projectchangeReviewResult', '1', 'rnd', 'admin', null, 'projectchangeReviewResult', '', '', ''), +('lang', '风险来源', 'riskSource', '1', 'rnd', 'admin', null, 'riskSource', '', '', ''), +('lang', '风险类型', 'riskCategory', '1', 'rnd', 'admin', null, 'riskCategory', '', '', ''), +('lang', '风险策略', 'riskStrategy', '1', 'rnd', 'admin', null, 'riskStrategy', '', '', ''), +('lang', '风险状态', 'riskStatus', '1', 'rnd', 'admin', null, 'riskStatus', '', '', ''), +('lang', '风险影响程度', 'riskImpact', '1', 'rnd', 'admin', null, 'riskImpact', '', '', ''), +('lang', '风险发生概率', 'riskProbability', '1', 'rnd', 'admin', null, 'riskProbability', '', '', ''), +('lang', '风险系数', 'riskRate', '1', 'rnd', 'admin', null, 'riskRate', '', '', ''), +('lang', '风险优先级', 'riskPri', '1', 'rnd', 'admin', null, 'riskPri', '', '', ''), +('lang', '风险取消原因', 'riskCancelReason', '1', 'rnd', 'admin', null, 'riskCancelReason', '', '', ''), +('lang', '问题优先级', 'issuePri', '1', 'rnd', 'admin', null, 'issuePri', '', '', ''), +('lang', '问题严重程度', 'issueSeverity', '1', 'rnd', 'admin', null, 'issueSeverity', '', '', ''), +('lang', '问题类型', 'issueType', '1', 'rnd', 'admin', null, 'issueType', '', '', ''), +('lang', '4问题解决方式', 'issueResolution', '1', 'rnd', 'admin', null, 'issueResolution', '', '', ''), +('lang', '问题状态', 'issueStatus', '1', 'rnd', 'admin', null, 'issueStatus', '', '', ''), +('lang', '机会来源', 'opportunitySource', '1', 'rnd', 'admin', null, 'opportunitySource', '', '', ''), +('lang', '机会类型', 'opportunityType', '1', 'rnd', 'admin', null, 'opportunityType', '', '', ''), +('lang', '机会策略', 'opportunityStrategy', '1', 'rnd', 'admin', null, 'opportunityStrategy', '', '', ''), +('lang', '机会状态', 'opportunityStatus', '1', 'rnd', 'admin', null, 'opportunityStatus', '', '', ''), +('lang', '机会影响程度', 'opportunityImpact', '1', 'rnd', 'admin', null, 'opportunityImpact', '', '', ''), +('lang', '机会发生概率', 'opportunityChance', '1', 'rnd', 'admin', null, 'opportunityChance', '', '', ''), +('lang', '机会优先级', 'opportunityPri', '1', 'rnd', 'admin', null, 'opportunityPri', '', '', ''), +('lang', '机会取消原因', 'opportunityCancelReason', '1', 'rnd', 'admin', null, 'opportunityCancelReason', '', '', ''); DROP VIEW IF EXISTS `view_datasource_2`; DROP VIEW IF EXISTS `view_datasource_3`; diff --git a/module/my/model.php b/module/my/model.php index 798c32ae77..24fa46216e 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -1318,6 +1318,9 @@ class myModel extends model ->andWhere('t1.type')->eq('review') ->beginIF(!helper::hasFeature('project_cm'))->andWhere('objectType')->ne('baseline')->fi() ->beginIF(!helper::hasFeature('project_change'))->andWhere('objectType')->ne('projectchange')->fi() + ->beginIF(!helper::hasFeature('project_risk'))->andWhere('objectType')->ne('risk')->fi() + ->beginIF(!helper::hasFeature('project_issue'))->andWhere('objectType')->ne('issue')->fi() + ->beginIF(!helper::hasFeature('project_opportunity'))->andWhere('objectType')->ne('opportunity')->fi() ->orderBy("t2.{$orderBy}") ->beginIF($checkExists)->limit(1)->fi() ->fetchAll(); diff --git a/module/upgrade/config/upgradeflow.php b/module/upgrade/config/upgradeflow.php index ff0062780d..25e5c41c9e 100644 --- a/module/upgrade/config/upgradeflow.php +++ b/module/upgrade/config/upgradeflow.php @@ -109,11 +109,11 @@ $config->upgrade->execFlow['21_1'] = array('functions' => 'processCacheCo $config->upgrade->execFlow['21_2'] = array('functions' => 'importBuildinWorkflow,addCharterApprovalFlow,processCharterFileConfig,processCharterStatus', 'params' => array('importBuildinWorkflow' => array('rnd', 'charter'))); $config->upgrade->execFlow['21_3'] = array('functions' => 'createDevOpsChartModule'); $config->upgrade->execFlow['21_6_beta'] = array('functions' => 'processCharterBranch'); -$config->upgrade->execFlow['21_6_1'] = array('xxsqls' => "$appRoot/db/upgradexuanxuan9.1.2.sql"); +$config->upgrade->execFlow['21_6_1'] = array('xxsqls' => "$appRoot/db/upgradexuanxuan9.1.2.sql"); $config->upgrade->execFlow['21_7'] = array('functions' => 'fixWorkflowNameForExecution'); $config->upgrade->execFlow['21_7_1'] = array('functions' => 'processActionProduct'); $config->upgrade->execFlow['21_7_5'] = array('functions' => 'weekly-addBuiltinWeeklyTemplate,adjustPriv21_7_5'); -$config->upgrade->execFlow['21_9'] = array('functions' => 'importBuildinWorkflow,processWorkflowDatasource', 'params' => array('importBuildinWorkflow' => array('all', 'cm,projectchange'), 'processWorkflowDatasource' => array(array('baselineStatus' => 'cm_status', 'baselineReviewResult' => 'cm_reviewResult', 'projectchangeUrgencyList' => 'projectchange_urgency', 'projectchangeTypeList' => 'projectchange_type', 'projectchangeStatus' => 'projectchange_status', 'projectchangeReviewResult' => 'projectchange_reviewResult')))); +$config->upgrade->execFlow['21_7_7'] = array('functions' => 'importBuildinWorkflow,processWorkflowDatasource', 'params' => array('importBuildinWorkflow' => array('all', 'cm,projectchange,risk,opportunity,issue'), 'processWorkflowDatasource' => array(array('baselineStatus' => 'cm_status', 'baselineReviewResult' => 'cm_reviewResult', 'projectchangeUrgencyList' => 'projectchange_urgency', 'projectchangeTypeList' => 'projectchange_type', 'projectchangeStatus' => 'projectchange_status', 'projectchangeReviewResult' => 'projectchange_reviewResult', 'riskSource' => 'risk_source', 'riskCategory' => 'risk_category', 'riskStrategy' => 'risk_strategy', 'riskStatus' => 'risk_status', 'riskImpact' => 'risk_impact', 'riskProbability' => 'risk_probability', 'riskRate' => 'risk_rate', 'riskPri' => 'risk_pri', 'riskCancelReason' => 'risk_cancelReason', 'issuePri' => 'issue_pri', 'issueSeverity' => 'issue_severity', 'issueType' => 'issue_type', 'issueResolution' => 'issue_resolution', 'issueStatus' => 'issue_status', 'opportunitySource' => 'opportunity_source', 'opportunityType' => 'opportunity_type', 'opportunityStrategy' => 'opportunity_strategy', 'opportunityStatus' => 'opportunity_status', 'opportunityImpact' => 'opportunity_impact', 'opportunityChance' => 'opportunity_chance', 'opportunityPri' => 'opportunity_pri', 'opportunityCancelReason' => 'opportunity_cancelReason')))); if(!empty($config->isINT)) {