public with sharing class DateModifyController { public String coId {get; set;} public String submitResult {get; set;} public Campaign cam {get; set;} public DateModifyController() { coId = System.currentPageReference().getParameters().get('id'); } //初始化 public void init() { cam = [select id, is_pass_or_fail__c, CeremonyLeaders__c, CeremonyDate__c, CeremonyDate_copy__c, Lesson1Date_copy__c, Lesson2Date_copy__c, Lesson3Date_copy__c, Lesson4Date_copy__c, Lesson5Date_copy__c, Lesson6Date_copy__c, Lesson7Date_copy__c, Lesson8Date_copy__c, FinalExamDate_copy__c, is_true_or_false__c, Lesson1Date__c, Lesson2Date__c, Lesson3Date__c, Lesson4Date__c, Lesson5Date__c, Lesson6Date__c, Lesson7Date__c, Lesson8Date__c, FinalExamDate__c, IsOpenCeremony__c, Open_day__c, Status_Service__c from Campaign where id = : coId]; if (cam == null) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '找不到对应的内镜临床工程师培养。')); return; } setUpDate(); //System.debug(cam.CeremonyLeaders__c); } public boolean getIsblock() { boolean Isblock = true; if (cam.Status_Service__c.equals('开班筹备中') || cam.Status_Service__c.equals('开班中') ) { Isblock = false; } return Isblock; } // 初始化日期赋值 private void setUpDate() { if (cam != null) { if (cam.CeremonyDate_copy__c == null) { cam.CeremonyDate_copy__c = cam.CeremonyDate__c; } if (cam.Lesson1Date_copy__c == null) { cam.Lesson1Date_copy__c = cam.Lesson1Date__c; } if (cam.Lesson2Date_copy__c == null) { cam.Lesson2Date_copy__c = cam.Lesson2Date__c; } if (cam.Lesson3Date_copy__c == null) { cam.Lesson3Date_copy__c = cam.Lesson3Date__c; } if (cam.Lesson4Date_copy__c == null) { cam.Lesson4Date_copy__c = cam.Lesson4Date__c; } if (cam.Lesson5Date_copy__c == null) { cam.Lesson5Date_copy__c = cam.Lesson5Date__c; } if (cam.Lesson6Date_copy__c == null) { cam.Lesson6Date_copy__c = cam.Lesson6Date__c; } if (cam.Lesson7Date_copy__c == null) { cam.Lesson7Date_copy__c = cam.Lesson7Date__c; } if (cam.Lesson8Date_copy__c == null) { cam.Lesson8Date_copy__c = cam.Lesson8Date__c; } if (cam.FinalExamDate_copy__c == null) { cam.FinalExamDate_copy__c = cam.FinalExamDate__c; } } } //保存按钮 public void saveBtn() { Savepoint sp = Database.setSavepoint(); try { upsert cam; //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM, '保存成功!')); } catch (Exception ex) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage() + ' | Line:' + ex.getLineNumber())); Database.rollback(sp); } } // 设置 时间修改邮件显示内容 @TestVisible private string setUpEmailStr() { string EmailStr = ''; if (cam.CeremonyDate__c != cam.CeremonyDate_copy__c) { string tempOrigin = cam.CeremonyDate__c == null ? '无' : cam.CeremonyDate__c.format(); string tempNew = cam.CeremonyDate_copy__c == null ? '无' : cam.CeremonyDate_copy__c.format(); EmailStr += '申请更改时间的事项:开班仪式时间 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson1Date__c != cam.Lesson1Date_copy__c) { string tempOrigin = cam.Lesson1Date__c == null ? '无' : cam.Lesson1Date__c.format(); string tempNew = cam.Lesson1Date_copy__c == null ? '无' : cam.Lesson1Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第一次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson2Date__c != cam.Lesson2Date_copy__c) { string tempOrigin = cam.Lesson2Date__c == null ? '无' : cam.Lesson2Date__c.format(); string tempNew = cam.Lesson2Date_copy__c == null ? '无' : cam.Lesson2Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第二次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson3Date__c != cam.Lesson3Date_copy__c) { string tempOrigin = cam.Lesson3Date__c == null ? '无' : cam.Lesson3Date__c.format(); string tempNew = cam.Lesson3Date_copy__c == null ? '无' : cam.Lesson3Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第三次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson4Date__c != cam.Lesson4Date_copy__c) { string tempOrigin = cam.Lesson4Date__c == null ? '无' : cam.Lesson4Date__c.format(); string tempNew = cam.Lesson4Date_copy__c == null ? '无' : cam.Lesson4Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第四次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson5Date__c != cam.Lesson5Date_copy__c) { string tempOrigin = cam.Lesson5Date__c == null ? '无' : cam.Lesson5Date__c.format(); string tempNew = cam.Lesson5Date_copy__c == null ? '无' : cam.Lesson5Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第五次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson6Date__c != cam.Lesson6Date_copy__c) { string tempOrigin = cam.Lesson6Date__c == null ? '无' : cam.Lesson6Date__c.format(); string tempNew = cam.Lesson6Date_copy__c == null ? '无' : cam.Lesson6Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第六次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson7Date__c != cam.Lesson7Date_copy__c) { string tempOrigin = cam.Lesson7Date__c == null ? '无' : cam.Lesson7Date__c.format(); string tempNew = cam.Lesson7Date_copy__c == null ? '无' : cam.Lesson7Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第七次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.Lesson8Date__c != cam.Lesson8Date_copy__c) { string tempOrigin = cam.Lesson8Date__c == null ? '无' : cam.Lesson8Date__c.format(); string tempNew = cam.Lesson8Date_copy__c == null ? '无' : cam.Lesson8Date_copy__c.format(); EmailStr += '申请更改时间的事项: 第八次授课 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } if (cam.FinalExamDate__c != cam.FinalExamDate_copy__c) { string tempOrigin = cam.FinalExamDate__c == null ? '无' : cam.FinalExamDate__c.format(); string tempNew = cam.FinalExamDate_copy__c == null ? '无' : cam.FinalExamDate_copy__c.format(); EmailStr += '申请更改时间的事项: 最终考核 原定日期:' + tempOrigin + ' 希望修改日期:' + tempNew + '\n\n'; } return EmailStr; } private void dateCopy() { cam.CeremonyDate_original__c = cam.CeremonyDate__c; cam.Lesson1Date_original__c = cam.Lesson1Date__c; cam.Lesson2Date_original__c = cam.Lesson2Date__c; cam.Lesson3Date_original__c = cam.Lesson3Date__c; cam.Lesson4Date_original__c = cam.Lesson4Date__c; cam.Lesson5Date_original__c = cam.Lesson5Date__c; cam.Lesson6Date_original__c = cam.Lesson6Date__c; cam.Lesson7Date_original__c = cam.Lesson7Date__c; cam.Lesson8Date_original__c = cam.Lesson8Date__c; cam.FinalExamDate_original__c = cam.FinalExamDate__c; cam.CeremonyDate__c = cam.CeremonyDate_copy__c; cam.Lesson1Date__c = cam.Lesson1Date_copy__c; cam.Lesson2Date__c = cam.Lesson2Date_copy__c; cam.Lesson3Date__c = cam.Lesson3Date_copy__c; cam.Lesson4Date__c = cam.Lesson4Date_copy__c; cam.Lesson5Date__c = cam.Lesson5Date_copy__c; cam.Lesson6Date__c = cam.Lesson6Date_copy__c; cam.Lesson7Date__c = cam.Lesson7Date_copy__c; cam.Lesson8Date__c = cam.Lesson8Date_copy__c; cam.FinalExamDate__c = cam.FinalExamDate_copy__c; cam.is_true_or_false__c = true; cam.Status = '时间修改申请中'; cam.is_pass_or_fail__c = 4; } //提交审批按钮 public void submitBtn() { Date startDate = cam.CeremonyDate_copy__c == null ? cam.Lesson1Date_copy__c : cam.CeremonyDate_copy__c; if (startDate == null ) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, Schema.SObjectType.Campaign.fields.StartDate__c.label + '不能为空。')); return; } Date startDate_original = cam.CeremonyDate__c == null ? cam.Lesson1Date__c : cam.CeremonyDate__c; if (startDate < cam.Open_day__c && startDate != startDate_original) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, Schema.SObjectType.Campaign.fields.StartDate__c.label + '不能早于审核通过日。')); return; } if (startDate > cam.Lesson1Date_copy__c || startDate > cam.Lesson2Date_copy__c || startDate > cam.Lesson3Date_copy__c || startDate > cam.Lesson4Date_copy__c || startDate > cam.Lesson5Date_copy__c || startDate > cam.Lesson6Date_copy__c || startDate > cam.Lesson7Date_copy__c || startDate > cam.Lesson8Date_copy__c || startDate > cam.FinalExamDate_copy__c) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '其他日期不能早于开班日期。')); return; } Date endDate = cam.Lesson8Date_copy__c; if (endDate == null) { endDate = cam.Lesson7Date_copy__c; } if (endDate == null) { endDate = cam.Lesson6Date_copy__c; } if (endDate == null) { endDate = cam.Lesson5Date_copy__c; } if (endDate == null) { endDate = cam.Lesson4Date_copy__c; } if (endDate == null) { endDate = cam.Lesson3Date_copy__c; } if (endDate == null) { endDate = cam.Lesson2Date_copy__c; } if (endDate == null) { endDate = cam.Lesson1Date_copy__c; } if (endDate != null && endDate > cam.FinalExamDate_copy__c) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '最后考核日期不能早于最后一次授课日期')); return; } Savepoint sp1 = Database.setSavepoint(); try { cam.DateModifiedEmailContext__c = setUpEmailStr(); if (cam.IsOpenCeremony__c != null && cam.IsOpenCeremony__c.equals('否')) { dateCopy(); upsert cam; } else if (cam.IsOpenCeremony__c != null && cam.IsOpenCeremony__c.equals('是') && cam.CeremonyDate_copy__c != null) { dateCopy(); upsert cam; } else { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '选择有开班仪式时请填写开班仪式时间!')); return; } Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest(); psr.setObjectId(this.cam.id); Approval.ProcessResult apo = Approval.process(psr); //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM, '审批已提交')); submitResult = 'success'; } catch (Exception ex2) { System.debug('异常:' + ex2.getMessage() + ' | Line:' + ex2.getLineNumber()); ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex2.getMessage())); Database.rollback(sp1); return; } ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '审批已提交')); } }