/**2021-08-31  mzy 
设备多时,FSE分批点检如果有遗漏设备的提醒设置
*/
public with sharing class InspectionRemindController {
	public String taId{get;set;} //点检计划Id
	//public List<String> BodyId {get;set;} //存放保有设备的Id
	//public Map<String,AssetInfo> BodyMap {get;set;} //存放保有设备信息
	public List<AssetInfo> BodyList {get;set;}
    public String getInit() {

    	system.debug('记录Id :' +taId);

    	if(String.IsBlank(taId)){
    		//return 'Id不能为空';
            return '';
    	}
    	//初始化变量
    	//BodyId = new List<String>();
    	BodyList = new  List<AssetInfo>();
    	/*
        //根据点检计划Id查询点检报告书
        List<Inspection_Report__c> InspectionReportList = [SELECT Id FROM Inspection_Report__c WHERE Inspectup_Plan__c = :taId];
        //根据点检报告书Id查询点检明细
        Set<String> IdSet = new Set<String>();
        if(InspectionReportList.size()>0){
        	for(Inspection_Report__c It:InspectionReportList){
        		IdSet.add(It.Id);
        	}
        	if(IdSet.size()>0){
        		//查询点检明细
        		List<Inspection_Item__c> InspectionItemList = [ SELECT Id,AssetId__c,AssetId__r.Id,AssetId__r.Name,AssetId__r.SerialNumber FROM Inspection_Item__c WHERE Inspection_ReportId__c = :IdSet];

        		//构建Body
        		if(InspectionItemList.size()>0){
        			for(Inspection_Item__c iitem:InspectionItemList){
        				if(!BodyId.contains(iitem.AssetId__c)){
        					BodyId.add(iitem.AssetId__c);
        					//BodyList.add(new AssetInfo(iitem.AssetId__c,iitem.AssetId__r.Name));
        					BodyList.add(new AssetInfo(iitem));
        				}
        			}
        		}
        	}
        }
        */  


           
            Map<String,String> AssetMap = new Map<String,String>();
	        List<Inspection_Item__c> InspectionItemList = [select Id,name,AssetId__c,AssetId__r.Product_Serial_No__c,Inspection_ReportId__c,
	        Inspection_ReportId__r.Inspectup_Plan__c from Inspection_Item__c where Inspection_ReportId__r.Inspectup_Plan__c = :taId and AssetId__c != null];
	        if(InspectionItemList.size()>0){
			    for(Inspection_Item__c iitem:InspectionItemList){
			        String ProductSerialNo = iitem.AssetId__r.Product_Serial_No__c;
			       	AssetMap.put(ProductSerialNo,ProductSerialNo); 
			    }
	        }

	        String ContractId = '';
            Inspectup_Plan__c ir0 = [SELECT Id,Maintenance_Contract__c FROM Inspectup_Plan__c WHERE id = :taId];
            ContractId = ir0.Maintenance_Contract__c;

            List<Maintenance_Contract_Asset__c>  mCAList = [Select Asset__c,Asset__r.Product_Serial_No__c,Asset__r.Product2.Asset_Model_No__c from Maintenance_Contract_Asset__c where Maintenance_Contract__c = :ContractId];
            if(mCAList.size()>0){
            	for(Maintenance_Contract_Asset__c mca:mCAList){
            		String ProductSerialNo = mca.Asset__r.Product_Serial_No__c;
            		if(!AssetMap.containsKey(ProductSerialNo)){
            			BodyList.add(new AssetInfo(mca));
            		}

            	}
            }



        return '';

    }

    class AssetInfo {
    	public String ProductSerialNo { get; set; }
    	public String AssetModelNo { get; set; }

    	public AssetInfo(Maintenance_Contract_Asset__c mca){
    		ProductSerialNo = mca.Asset__r.Product_Serial_No__c;
    		AssetModelNo = mca.Asset__r.Product2.Asset_Model_No__c;
    	}
    }

}