sunxia
2023-03-09 7b0e5c8b8de9968e32dd7f84d41dc2eaa0e868b3
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
public with sharing class RentalApplyFaultReportController{
 
    public String raId {get; set;}
    public List<Rental_Apply_Equipment_Set_Detail__c> eList { get; set;}
    public Rental_Apply__c raObj { get; set;}
    public List<RetObject> retObject { get; set; }
 
    public RentalApplyFaultReportController(){
        raId = ApexPages.currentPage().getParameters().get('ra_id');
 
        if (String.isBlank(this.raId)) {
            throw new ControllerUtil.myException('参数错误:请指定Id。');
        }
    }
 
    public Pagereference init() {
 
        retObject = new List<RetObject>();
 
        raObj = [SELECT Id, Name, OCM_dept_category__c, Hospital__c, Hospital__r.Name, Person_In_Charge__c, Person_In_Charge__r.Name, WorkPlace__c, demo_purpose2__c FROM Rental_Apply__c WHERE Id =: raId];
 
        //备品借出申请一览明细
        eList = [
            SELECT Id, Name, Rental_Apply__c, Rental_Apply_Equipment_Set__r.Name, Rental_Apply__r.OCM_dept_category__c, Loaner_asset_no__c, AssetName__c,
                Fixture_Model_No__c, SerialNumber_F__c, Inspection_result_after__c, Inspection_result_after_NG__c, SerialNumber__c
              FROM Rental_Apply_Equipment_Set_Detail__c
             WHERE Rental_Apply__c = :raId
               AND Inspection_result_after__c = 'NG'
               AND Is_Body__c = true
            ORDER BY Id];
 
        List<Id> eIds = new List<Id>();
        for(Rental_Apply_Equipment_Set_Detail__c e :eList){
            eIds.add(e.Id);
        }
 
 
        //查当前明细下有多少故障报告
        // 0 没有报告
        // Id 有 最新一条为草案中
        // 2 有很多条
        List<Rental_Apply_Fault__c> faultReportsList = [SELECT Id ,status__c ,Rental_Apply_Equipment_Set_Detail__c from Rental_Apply_Fault__c where Rental_Apply_Equipment_Set_Detail__c in :eIds Order By CreatedDate DESC];
        Map<Id, List<Rental_Apply_Fault__c>> radetail_rentalApplyFault_Map = new Map<Id, List<Rental_Apply_Fault__c>>();
        
        for(Rental_Apply_Fault__c raf : faultReportsList){
            if(!radetail_rentalApplyFault_Map.containsKey(raf.Rental_Apply_Equipment_Set_Detail__c)){
                List<Rental_Apply_Fault__c> tempList = new List<Rental_Apply_Fault__c>();
                tempList.add(raf);
                radetail_rentalApplyFault_Map.put(raf.Rental_Apply_Equipment_Set_Detail__c, tempList);
            }
        }
 
        system.debug('radetail_rentalApplyFault_Map==='+radetail_rentalApplyFault_Map);
 
        for(Rental_Apply_Equipment_Set_Detail__c rae : eList){
 
            RetObject temp = new RetObject();
            temp.Id = rae.Id;
            temp.Name = rae.Name;
            temp.rae = rae;
            
            if( radetail_rentalApplyFault_Map.containsKey(rae.Id) && radetail_rentalApplyFault_Map.get(rae.Id).size() > 0 ){
                    
                temp.flag = radetail_rentalApplyFault_Map.get(rae.Id)[0].Id ;
                
            }else{
                temp.flag = '不存在故障报告单';
            }
 
            retObject.add(temp);
        }
 
        return null;
    }
 
    public class RetObject {
        public String Id { get; set; }
        public String Name { get; set; }
 
        public Rental_Apply_Equipment_Set_Detail__c rae { get; set; }
        public String flag { get; set; }
    }
}