public with sharing class QuestionnaireAllowanceController { //用户信息 public user userdet { get; set; } public Questionnaire_Survey__c csc { get; set; } public Boolean btn {get;set;} // 问卷 ID public String qsId { get; set; } public QuestionnaireAllowanceController() { qsId = ApexPages.currentPage().getParameters().get('qsId'); btn = false; } // 画面初始化 public void init() { userdet = [SELECT Work_Location__c,Job_Category__c,Post__c FROM user where id = :UserInfo.getUserId()]; csc = new Questionnaire_Survey__c(); if(String.isNotBlank(qsId)){ csc = [SELECT Id, Accept_GPS__c, Accept_traffic_Text__c, Accept_traffic__c, AutoNumber__c, Incharge_Hospital_Count__c, Incharge_Hospital_FarthestDistance__c, Incharge_Hospital_Location__c, Incharge_Hospital_NearestDistance__c, Most_dissatisfied__c, Most_satisfied__c,Notaccept_GPS_Reason__c, Other_Visitefficiency_Text__c, Other_Visitefficiency__c,Questionnaire_user__c, TeamWork_efficiency_Text__c, Traffic_subsidy_Opinion__c, Traffic_subsidy_Status__c, Traffic_subsidy_balance__c, Trip_Mode_Other__c, Trip_Mode__c, User_Job_Category__c, User_Post__c, User_Work_Location__c, Visit_efficiency_quality_Text__c, Visit_efficiency_quality__c, Workeffectiveness_departments_Text__c, Workeffectiveness_departments__c, TeamWork_efficiency__c, Traffic_expense_reason__c,Questionnaire_Status__c FROM Questionnaire_Survey__c WHERE Id = :qsId]; } } // 保存按钮 public PageReference save() { Questionnaire_Survey__c qs = new Questionnaire_Survey__c(); //一、工作情况调查 if(String.isBlank(csc.Incharge_Hospital_Count__c)){ csc.Incharge_Hospital_Count__c.addError('请选择负责目标医院数量。'); return null; } if(String.isBlank(csc.Incharge_Hospital_Location__c)){ csc.Incharge_Hospital_Location__c.addError('请选择目标医院位置。'); return null; } if(csc.Incharge_Hospital_FarthestDistance__c <= 0 || String.isBlank(String.valueOf(csc.Incharge_Hospital_FarthestDistance__c))){ csc.Incharge_Hospital_FarthestDistance__c.addError('请录入最远距离。'); return null; } if(csc.Incharge_Hospital_NearestDistance__c <= 0 || String.isBlank(String.valueOf(csc.Incharge_Hospital_NearestDistance__c))){ csc.Incharge_Hospital_NearestDistance__c.addError('请录入最近距离。'); return null; } if(csc.Incharge_Hospital_NearestDistance__c > csc.Incharge_Hospital_FarthestDistance__c){ csc.Incharge_Hospital_FarthestDistance__c.addError('最远距离小于最近距离。'); return null; } if(String.isBlank(csc.Trip_Mode__c)){ csc.Trip_Mode__c.addError('请选择出行方式。'); return null; } if(String.valueOf(csc.Trip_Mode__c) == '④其他' && String.isBlank(csc.Trip_Mode_Other__c)){ csc.Trip_Mode_Other__c.addError('请录入具体出行方式。'); return null; } //二、工作效率调查 if(String.isBlank(csc.Visit_efficiency_quality__c)){ csc.Visit_efficiency_quality__c.addError('请选择拜访效率/质量。'); return null; } if(String.isBlank(csc.Visit_efficiency_quality_Text__c)){ csc.Visit_efficiency_quality_Text__c.addError('请列举具体数据或事例'); return null; } if(String.isBlank(csc.Other_Visitefficiency__c)){ csc.Other_Visitefficiency__c.addError('请选择他方面的工作效率。'); return null; } if(String.isBlank(csc.Other_Visitefficiency_Text__c)){ csc.Other_Visitefficiency_Text__c.addError('请列举具体数据或事例'); return null; } if(String.isBlank(csc.TeamWork_efficiency__c)){ csc.TeamWork_efficiency__c.addError('请选择团队成员工作效率。'); return null; } if(String.isBlank(csc.TeamWork_efficiency_Text__c)){ csc.TeamWork_efficiency_Text__c.addError('请列举具体数据或事例'); return null; } if(String.isBlank(csc.Workeffectiveness_departments__c)){ csc.Workeffectiveness_departments__c.addError('请选合作部门工作效率。'); return null; } if(String.isBlank(csc.Workeffectiveness_departments_Text__c)){ csc.Workeffectiveness_departments_Text__c.addError('请列举具体数据或事例'); return null; } //三、满意度情况调查 // if(String.isBlank(csc.Traffic_subsidy_Status__c)){ // csc.Traffic_subsidy_Status__c.addError('请选择实际支出。'); // return null; // } // if(String.valueOf(csc.Traffic_subsidy_Status__c) == '③不能满足' && (String.isBlank(String.valueOf(csc.Traffic_subsidy_balance__c)) || csc.Traffic_subsidy_balance__c <= 0)){ // csc.Traffic_subsidy_balance__c.addError('请录入差额'); // return null; // } if(String.isBlank(csc.Most_satisfied__c)){ csc.Most_satisfied__c.addError('在试行市内交通补贴期间,您最满意的是什么'); return null; } if(String.isBlank(csc.Most_dissatisfied__c)){ csc.Most_dissatisfied__c.addError('在试行市内交通补贴期间,您最不满意的是什么'); return null; } //四、意见和建议 if(String.isBlank(csc.Accept_traffic__c)){ csc.Accept_traffic__c.addError('请选择愿意接受的交通费用政策'); return null; } if(csc.Accept_traffic__c == '③其他(请说明)' && String.isBlank(csc.Accept_traffic_Text__c)){ csc.Accept_traffic_Text__c.addError('请列举具体数据或事例'); return null; } if(String.isBlank(csc.Traffic_expense_reason__c)){ csc.Traffic_expense_reason__c.addError('请说明选择以上方式的原因'); return null; } if(String.isBlank(csc.Accept_GPS__c)){ csc.Accept_GPS__c.addError('请选择是否接受GPS'); return null; } if(csc.Accept_GPS__c == '②不能接受' && String.isBlank(csc.Notaccept_GPS_Reason__c)){ csc.Notaccept_GPS_Reason__c.addError('请说明不接受GPS原因'); return null; } if(String.isBlank(csc.Traffic_subsidy_Opinion__c)){ csc.Traffic_subsidy_Opinion__c.addError('请提出你的意见或建议'); return null; } if(String.isNotBlank(qsId)){ qs.id = qsId; }else{ qs.Name = '*'; } qs.Questionnaire_user__c = UserInfo.getUserId(); qs.Incharge_Hospital_Count__c = csc.Incharge_Hospital_Count__c; qs.Incharge_Hospital_Location__c = csc.Incharge_Hospital_Location__c; qs.Incharge_Hospital_FarthestDistance__c = csc.Incharge_Hospital_FarthestDistance__c; qs.Incharge_Hospital_NearestDistance__c = csc.Incharge_Hospital_NearestDistance__c; qs.Trip_Mode__c = csc.Trip_Mode__c; qs.Trip_Mode_Other__c = csc.Trip_Mode_Other__c; //二、工作效率调查 qs.Visit_efficiency_quality__c = csc.Visit_efficiency_quality__c; qs.Visit_efficiency_quality_Text__c = csc.Visit_efficiency_quality_Text__c; qs.Other_Visitefficiency__c = csc.Other_Visitefficiency__c; qs.Other_Visitefficiency_Text__c = csc.Other_Visitefficiency_Text__c; qs.TeamWork_efficiency__c = csc.TeamWork_efficiency__c; qs.TeamWork_efficiency_Text__c = csc.TeamWork_efficiency_Text__c; qs.Workeffectiveness_departments__c = csc.Workeffectiveness_departments__c; qs.Workeffectiveness_departments_Text__c = csc.Workeffectiveness_departments_Text__c; //三、满意度情况调查 qs.Traffic_subsidy_Status__c = csc.Traffic_subsidy_Status__c; qs.Traffic_subsidy_balance__c = csc.Traffic_subsidy_balance__c; qs.Most_satisfied__c = csc.Most_satisfied__c; qs.Most_dissatisfied__c = csc.Most_dissatisfied__c; //三、满意度情况调查 qs.Accept_traffic__c = csc.Accept_traffic__c; qs.Accept_traffic_Text__c = csc.Accept_traffic_Text__c; qs.Traffic_expense_reason__c = csc.Traffic_expense_reason__c; qs.Accept_GPS__c = csc.Accept_GPS__c; qs.Notaccept_GPS_Reason__c = csc.Notaccept_GPS_Reason__c; qs.Traffic_subsidy_Opinion__c = csc.Traffic_subsidy_Opinion__c; Savepoint sp = Database.setSavepoint(); try{ upsert qs; btn = true; ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '保存成功')); } catch (Exception e) { ApexPages.addMessages(e); Database.rollback(sp); } qsId = qs.Id; return UnabletoEdit(); } // 返回不可编辑状态 public PageReference UnabletoEdit(){ PageReference ref = new Pagereference('/apex/QuestionnaireAllowance?qsId='+qsId); ref.setRedirect(true); return ref; } // 提交按钮 public PageReference Sorder() { Savepoint sp = Database.setSavepoint(); try { Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest(); psr.setObjectId(qsId); Approval.ProcessResult submitResult = Approval.process(psr); init(); return null; } catch (Exception e) { ApexPages.addmessages(e); Database.rollback(sp); return null; } } }