高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
public class UpdAccountExamineController {
 
    public String processId;
    public String AccId;
    public ProcessInstance objProcessInstance;
    public Account_Delay_Apply__c objAcc {get; set;}
    public string Comments {get;set;}
    public string ApprovalAction {get;set;}
    public PageReference redirectPage;
    public String testlink {get; set;}
 
    // 登陆用户
    public User loginUser { get; set; }
    
    //初始化
    public UpdAccountExamineController()
    {   
        loginUser = [Select Id, Salesdepartment__c, Province__c, ProfileId, Job_Category__c, Sales_Speciality__c From User where Id = :Userinfo.getUserId()];
 
        testlink = ApexPages.currentPage().getParameters().get('testlink'); //当前节点名字
        processId = ApexPages.currentPage().getParameters().get('id'); //获取当前的工作流ID
        AccId = ApexPages.currentPage().getParameters().get('AccId'); //获取当前case ID
        system.debug(processId+'-----lt123-----'+AccId);
        objAcc = [select Name, Is_Active__c, InstitutionalType__c, WhetherRiskPassing__c, HospitalType__c from Account_Delay_Apply__c where id =:AccId]; 
        redirectPage = new PageReference('/'+AccId);
     }
    //审批
     public PageReference Approval(){   
      try
        {
            System.debug('lt123---ApprovalAction:'+ApprovalAction);
            System.debug('lt123---testlink审批节点:'+testlink);
            
            if(ApprovalAction == 'Approve' || ApprovalAction == 'Reject'){
                if(testlink.contains('营业窗口审批')){
                    if(ApprovalAction == 'Reject'){
                        objAcc.Is_Active__c = '草案中';
                     }   
                }else if(testlink.contains('医院新建审批_营业支援部') ){
                    System.debug('lt123---testlink审批节点1进来啦----------------:');
                    //接受
                    if(ApprovalAction == 'Approve'){
                        // if(objAcc.RejectionReason__c != null){
                        //     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '您已填写驳回理由,批准不需要驳回理由。'));
                        //     return null;
                        // }
                        if(objAcc.InstitutionalType__c == null){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '批准前,机构类型必填。'));
                            return null;
                        }
                        if(objAcc.InstitutionalType__c == '非医疗机构' && objAcc.HospitalType__c == null){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '非医疗机构请选择医院类型。'));
                            return null;
                        }
                        if(objAcc.InstitutionalType__c == '医疗机构' && objAcc.HospitalType__c != null){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '医疗机构不需要选择医院类型。'));
                            return null;
                        }
                        if(objAcc.InstitutionalType__c == '医疗机构'){
                            objAcc.Is_Active__c = '审批通过';
                            objAcc.Approved_Confirm_Date__c = Date.today();
                        }
 
                    }
 
                    // 拒绝
                    if(ApprovalAction == 'Reject'){
                         if(objAcc.InstitutionalType__c == null){
                             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '拒绝前,机构类型必填。'));
                             return null;
                         }
                        if(objAcc.InstitutionalType__c == '医疗机构'){
                            objAcc.Is_Active__c = '驳回';
                        }else if(objAcc.InstitutionalType__c == '非医疗机构'){
                            objAcc.Is_Active__c = '草案中';
                        }
                    }
                }else if(testlink.contains('质量法规二级部长') ){
                    if(ApprovalAction == 'Approve'){
                       if(objAcc.InstitutionalType__c == '非医疗机构' && objAcc.HospitalType__c == '高等院校'){
                          objAcc.Is_Active__c = '审批通过';
                          objAcc.Approved_Confirm_Date__c = Date.today();
                       }
                    }
                     if(ApprovalAction == 'Reject'){
                        objAcc.Is_Active__c = '驳回';
                      }     
 
                 }else if(testlink.contains('经销商管理部一级审批')){
                    System.debug('lt123---testlink审批节点66666进来啦----------------:');
                    
                    if(ApprovalAction == 'Approve'){
                        if(objAcc.WhetherRiskPassing__c == null){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '是否为有风险通过 必填。'));
                            return null;
                        }
                       if(objAcc.InstitutionalType__c == '非医疗机构' && objAcc.HospitalType__c == '企业集团' && objAcc.WhetherRiskPassing__c == '否'){
                          objAcc.Is_Active__c = '审批通过';
                          objAcc.Approved_Confirm_Date__c = Date.today();
                       }
                    }
                    if(ApprovalAction == 'Reject'){
                        objAcc.Is_Active__c = '驳回';
                    } 
 
                }else if(testlink.contains('总经理审批')){
                    if(ApprovalAction == 'Approve'){
                        objAcc.Is_Active__c = '审批通过';
                        objAcc.Approved_Confirm_Date__c = Date.today();
                    }
                     if(ApprovalAction == 'Reject'){
                        objAcc.Is_Active__c = '驳回';
                     } 
                }else{
                     if(ApprovalAction == 'Reject'){
                        objAcc.Is_Active__c = '驳回';
                      }   
                }
                
                System.debug('you1----------------:'+objAcc.Is_Active__c);
               
                Approval.ProcessWorkitemRequest approvalNode = new Approval.ProcessWorkitemRequest();
               
                approvalNode.setComments(Comments);
                approvalNode.setAction(ApprovalAction);                
                approvalNode.setWorkitemId(processId);
 
                system.debug('lt123---processID'+processId);
                system.debug('更新结果1'+objAcc);
                objAcc.CustomizePageFlg__c = true;    
                update objAcc;
                system.debug('更新结果2'+objAcc);
                Approval.ProcessResult result = Approval.process(approvalNode);
                system.debug('lt123---result:'+result.isSuccess());
                
             }
            else
            {
                //system.debug('ApprovalAction:'+this.ApprovalAction);
            }
        }
        catch(Exception ex)
        {
            system.debug('Ex:'+ex.getMessage());
         }
         return redirectPage;
    }
}