...
前置条件: ScriptRunner中 Events指定为Issue Updated。
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//引入自己的插件 @WithPlugin("com.hktx.htcx.refinedmanager") import com.onresolve.scriptrunner.runner.customisers.WithPlugin import com.atlassian.jira.component.ComponentAccessor import com.hktx.htcx.refinedmanager.services.SettlementWorkloadService; import com.hktx.jira.utils.PropertiesUtils import com.hktx.htcx.refinedmanager.Constants import com.atlassian.jira.issue.MutableIssue //只有配置的问题类型才生效,否则直接退出 def issue = event.issue as MutableIssue def showTypes = PropertiesUtils.getValue(Constants.DISPLAY_WEBPANEL_ISSUE_TYPE); if (!(","+showTypes+",").contains(","+issue.getIssueTypeId()+",")) { return } def settlementService = ComponentAccessor.getOSGiComponentInstanceOfType(SettlementWorkloadService); def changeHistoryManager = ComponentAccessor.getChangeHistoryManager(); def changeHistories = changeHistoryManager.getChangeHistories(event.issue) if (changeHistories) { //判断最新的变更记录中Dev Supplier字段有没有被修改 def devSupplierChangeRecord = changeHistories.last().getChangeItemBeans().find { // 指定字段修改前后的值不一样 it.field == 'Dev Supplier' && it.fromString != it.toString } //如果指定字段被修改调用插件中的service方法 if (devSupplierChangeRecord) { log.error("开发厂商变更 changed: "+ devSupplierChangeRecord.fromString+" to:" + devSupplierChangeRecord.toString) settlementService.handlerSupplierChanged(issue.id, 1); } //判断最新的变更记录中Test Supplier字段有没有被修改 def testSupplierChangeRecord = changeHistories.last().getChangeItemBeans().find { // 指定字段修改前后的值不一样 it.field == 'Test Supplier' && it.fromString != it.toString } //如果指定字段被修改调用插件中的service方法 if (testSupplierChangeRecord) { log.error("测试厂商变更 changed: "+ testSupplierChangeRecord.fromString+" to:" + testSupplierChangeRecord.toString) settlementService.handlerSupplierChanged(issue.id, 2); } } |