GWY
2022-04-27 12b7399736e90d33bfe0c2d29917d6f075246e00
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
public without sharing class SearchManagementController {
 
    public String baseUrl { get; private set; }
    public String baId { get; private set; }
    public String tsRepairId { get; private set; }
    public String ufId { get; private set; }
    public Boolean ErrorFlag { get; private set; }
 
    public String searchManagementCode {get;set;}
 
    public User_FaultInfo__c  UserFaultInfo  {get;set;}  
    public List<User_FaultInfo__c> UserFaultInfoList {get;set;}
    public Integer ErrorNum {get;set;} 
 
    public String fromUserFaultInfoId {get;set;}
 
    public String lineno {get;set;}
    public SearchManagementController() {
        ErrorFlag = false;
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
        // 待更新的业务活动Id
        baId = System.currentPageReference().getParameters().get('baId');
        // TS日报Id
        tsRepairId = System.currentPageReference().getParameters().get('repairId');
        // 待更新的用户故障信息的Id
        ufId = System.currentPageReference().getParameters().get('ufId');
 
        lineno = System.currentPageReference().getParameters().get('lineno');
    }
    public void init () {
        ErrorFlag = false;
        ErrorNum = 0;
        UserFaultInfoList = new List<User_FaultInfo__c>();
        searchManagementCode = '';
        UserFaultInfo = new User_FaultInfo__c();  
        if (searchManagementCode != null && searchManagementCode != '' || UserFaultInfo.UserFaultInfoReportDate__c != null ) {
            serUserFaultInfo();
        }
    }
 
    public PageReference serUserFaultInfo(){
        //当前用户ID
        String userId = UserInfo.getUserId();
        String soql = TSRepairUtil.UserFaultInfoBaseSQL();
        String recordTypeId = System.label.Case_RecordTypeTSTSReport;
        //管理编号不为NULL
        if(String.isNotBlank(searchManagementCode)){
            soql += ' and UFManagementCode__c like \'%' + String.escapeSingleQuotes(searchManagementCode.trim().replaceAll('%', '\\%')) + '%\'';
        }
        //报告日期不为NULL
        if(UserFaultInfo.UserFaultInfoReportDate__c != null ){
           
            soql += ' and UserFaultInfoReportDate__c = '+ String.valueOf(UserFaultInfo.UserFaultInfoReportDate__c);
        }
        //查找客户不为null
        if(UserFaultInfo.UFAccount__c !=null){
            String accountId = UserFaultInfo.UFAccount__c;
            soql += ' and UFAccount__c  =\''+ accountId +'\'';
            // soql += ' AND ' + TSRepairUtil.AccountBaseRecordTypeIdSQL2();
        }
 
        soql +=  ' and OwnerId = \'' + userId + '\'' ;
        soql +=  ' AND UserFaultInfoCompletionDate__c = null ';  
        soql +=  ' AND RecordTypeId = \'' + recordTypeId + '\''; 
        soql +=  ' order by Id' ;
        System.debug('soql------>222->'+soql);
        UserFaultInfoList = Database.query(soql);
 
        return null;
    }
 
    public void save(){
 
        // 业务活动
        ErrorFlag = true;
        String errorMessages = '';
        Map<String, User_FaultInfo__c> userFaultInfoMap = new Map<String, User_FaultInfo__c>();
        if (UserFaultInfoList != null && UserFaultInfoList.size() > 0) {
 
            for (User_FaultInfo__c uf :UserFaultInfoList) {
                if (uf.UserFaultInfoBeSelected__c) {
                    uf.UserFaultInfoBeSelected__c = false;
                    userFaultInfoMap.put(uf.UFManagementCode__c, uf);
                }
            }
            if (userFaultInfoMap != null && userFaultInfoMap.size() == 1) {
                ErrorNum = userFaultInfoMap.size();
                ErrorFlag = false;
            } else if (userFaultInfoMap.size() > 1) {
                
                errorMessages = '只能选择一个业务活动,请确认';
            } else if (userFaultInfoMap.size() < 1) {
                errorMessages = '请选择一个业务活动,请确认';
            }
 
            if (ErrorFlag) {
                ErrorNum = userFaultInfoMap.size();
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, errorMessages));
            } else {
 
                Savepoint sp = Database.setSavepoint();
                try {
                    for (String uFManagementCode : userFaultInfoMap.keySet()) {
                        User_FaultInfo__c updateUserFaultInfo = userFaultInfoMap.get(uFManagementCode);
                        fromUserFaultInfoId = updateUserFaultInfo.Id;
                    }
                
                }catch (Exception e) {
                    ApexPages.addMessages(e);
                    Database.rollback(sp);
                }
            }
        }
 
 
        
    }
}