public with sharing class SubmitForApprovalController { //维修合同失单数据 public Lost_Report__c lostData { get; set; } //ID作为SQL的条件 public String Id { get; set; } public boolean flag { get; set; } public Boolean canseePage { get; set; } public String mcId { get; set; } //构造器 public SubmitForApprovalController() { //从地址栏获取ID Id = System.currentPageReference().getParameters().get('id'); mcId = System.currentPageReference().getParameters().get('mcId'); // 维修合同失单数据 lostData = new Lost_Report__c(); flag = false; } public SubmitForApprovalController(ApexPages.StandardController controller) { this(); } //初始化方法 public void init() { if (String.isNotBlank(Id)) { canseePage = false; List < Lost_Report__c > lostDataList = new List < Lost_Report__c > (); String lostReportSql = lostOrder(Id); lostDataList = Database.query(lostReportSql); if (lostDataList.size() > 0) { lostData = lostDataList[0]; mcId = lostData.Maintenance_Contract__c; } if (lostData.Status__c == '提交' || lostData.Status__c == '审批中' || lostData.Status__c == '批准') { canseePage = true; return; } } else { lostData.Maintenance_Contract__c = mcId; lostData.Status__c = '草案中'; // insert lostData; } } //保存方法 public PageReference save() { flag = false; try { Boolean resultSaveFlag = dataInspect(); if (!resultSaveFlag) { ControllerUtil.lostOrder(lostData); flag = true; } } catch (Exception e) { ApexPages.addmessages(e); return null; } return null; } //提交审批方法 public PageReference submit() { save(); lostData.Status__c = '提交'; try { ControllerUtil.lostOrder(lostData); flag = true; } catch (Exception e) { ApexPages.addmessages(e); return null; } return null; } //数据检查警告 public Boolean dataInspect() { boolean result = false; if (lostData.Specific_Reasons__c == null) { lostData.Specific_Reasons__c.addError('请选择你的具体原因'); result = true; } if (lostData.To_Where__c == null) { lostData.To_Where__c.addError('请选择您的去向'); result = true; } if (lostData.Specific_Reasons__c == '其他(手写)') { if (String.isBlank(lostData.Other_Reasons__c)) { lostData.Other_Reasons__c.addError('具体原因为"其他"时,应详细说明!'); result = true; } } else { lostData.Other_Reasons__c = null; } if (lostData.To_Where__c == '医院选择第三方') { if (String.isBlank(lostData.Third_Party_Company__c)) { lostData.Third_Party_Company__c.addError('去向为"第三方公司",应详细说明第三方名称'); result = true; } if (lostData.Third_Party_Contract_Price__c == null) { lostData.Third_Party_Company__c.addError('去向为"第三方公司",应详细说明第三方成交价格'); result = true; } } else { lostData.Third_Party_Company__c = null; lostData.Third_Party_Contract_Price__c = null; } if (lostData.To_Where__c == '其他(手写)') { if (String.isBlank(lostData.Other__c)) { lostData.Third_Party_Company__c.addError('去向为"其他"应详细说明!'); result = true; } } else { lostData.Other__c = null; } return result; } //查询具体原因的sql public String lostOrder(String Id) { String lostReportSql = 'SELECT id,Status__c,Other_Reasons__c,Other__c,Third_Party_Company__c,Third_Party_Contract_Price__c,To_Where__c,Specific_Reasons__c,Maintenance_Contract__c from Lost_Report__c where Id = \'' + Id + '\''; return lostReportSql; } }