public with sharing class ISO_NewDemandOAD_PDFController { // si询价需求表id public String ISodcIdStr {get;set;} // PDF文件名称 public String fileName {get;set;} public String NowDate{get;set;} public IS_Opportunity_Demand__c ISOppDemandList{ get; set; } public List ISOpptunityDemandList{ get; set; } // si询价手术间 public List ISOppDemandOperList{ get; set; } public IS_Opportunity_Demand_Operating__c ISOppDemandOper1{ get; set; } public IS_Opportunity_Demand_Operating__c ISOppDemandOper2{ get; set; } public IS_Opportunity_Demand_Operating__c ISOppDemandOper3{ get; set; } public IS_Opportunity_Demand_Operating__c ISOppDemandOperMore{ get; set; } // si询价示教点 public List ISOppDemandDemonList{ get; set; } public IS_Opportunity_Demand_Demonstration__c ISOppDemandDemon1{ get; set; } public IS_Opportunity_Demand_Demonstration__c ISOppDemandDemon2{ get; set; } public IS_Opportunity_Demand_Demonstration__c ISOppDemandDemonMore{ get; set; } // si询价术间对应的配置单 public List ISOppDemandConfiguateList{ get; set; } public List ISOppDemandConfiguate1{get; set; } public List ISOppDemandConfiguateMatch1{get; set; } public List ISOppDemandConfiguate2{get; set; } public List ISOppDemandConfiguateMatch2{get; set; } public List ISOppDemandConfiguate3{get; set; } public List ISOppDemandConfiguateMatch3{get; set; } // 控制术间的显示 public Boolean showISOdo1{ get; set; } public Boolean showISOdo2{ get; set; } public Boolean showISOdo3{ get; set; } public Boolean showISOdoMore{ get; set; } // 控制示教点的显示 public Boolean showISOdd1{ get; set; } public Boolean showISOdd2{ get; set; } public Boolean showISOddMore{ get; set; } public ISO_NewDemandOAD_PDFController() { ISodcIdStr = ApexPages.currentPage().getParameters().get('id'); fileName = ApexPages.currentPage().getParameters().get('fileName'); ApexPages.currentPage().getHeaders().put('content-disposition','inline;filename='+fileName+'.pdf'); } public void init(){ showISOdo1 = false; showISOdo2 = false; showISOdo3 = false; showISOdoMore = false; showISOdd1 = false; showISOdd2 = false; showISOddMore = false; ISOppDemandConfiguate1 = new List(); ISOppDemandConfiguateMatch1 = new List(); ISOppDemandConfiguate2 = new List(); ISOppDemandConfiguateMatch2 = new List(); ISOppDemandConfiguate3 = new List(); ISOppDemandConfiguateMatch3 = new List(); NowDate = System.now().format('yyyy-MM-dd'); // 查询si询价需求表的信息 ISOpptunityDemandList = [select id,Opportunity_ID__r.State__c,Opportunity_ID__r.Opportunity_No__c,Demonstration_Number__c,Opportunity_ID__c,Transmission_Mode__c,Operating_Room_Count__c,Demand_DemonstrationType__c,OperatingRoomName__c,Operating_Room_Position_Area__c,Operating_Room_Position_Building__c,Operating_Room_Position_Stage__c from IS_Opportunity_Demand__c where id = :ISodcIdStr]; if(ISOpptunityDemandList.size() > 0){ ISOppDemandList = ISOpptunityDemandList[0]; } // 查询si询价手术间 ISOppDemandOperList = [select id,Project_Information__c,Name,Name__c,IS_Opportunity_Demand__c,Operating_Room_Area__c,Remarks_Text__c,Operating_Room_Type__c,Olympus_LightSource_Host__c,Olympus_CD_Writer__c,Olympus_Ultrasound_Knife__c,Olympus_Insufflator__c,Olympus_Camera_Host__c,Olympus_Electric_Knife__c,ThirdParty_OperatingTable__c,ThirdParty_OperationLamp__c,ThirdParty_Camera__c from IS_Opportunity_Demand_Operating__c where IS_Opportunity_Demand__c = :ISodcIdStr]; // 查询si询价示教点 ISOppDemandDemonList = [select id,Name,IS_Opportunity_Demand__c,Teaching_Needs__c,Other_Require_Text__c,Demonstration_Type__c,Other_Relative_Position__c,Name__c from IS_Opportunity_Demand_Demonstration__c where IS_Opportunity_Demand__c = :ISodcIdStr]; // 查询si询价配置单 ISOppDemandConfiguateList = [select id,name,Configuration_Type__c,Selection__c,Matching__c,SerialNumber__c,Number__c,Standard_Configuration__c,IS_Opportunity_Demand_Operating__c,Brand__c,Company__c,IS_Opportunity_Demand_Operating__r.Name__c from IS_Opportunity_Demand_Configuration__c where IS_Opportunity_Demand_Operating__c = :ISOppDemandOperList order by SerialNumber__c]; // 拆分si询价手术间 for(IS_Opportunity_Demand_Operating__c isOdo :ISOppDemandOperList){ if(isOdo.Name__c == '手术间1'){ ISOppDemandOper1 = isOdo; ISOppDemandOper1.Remarks_Text__c = reStringAll(isOdo.Remarks_Text__c); // System.debug(isOdo.Remarks_Text__c+'======'); // String str = isOdo.Remarks_Text__c; // System.debug(str+'======'); // String[] strlist = str.split('\n'); // System.debug(strlist+'======strlist'); if(ISOppDemandOper1 != null){ System.debug('======是否显示'); showISOdo1 = true; showISOdo2 = false; showISOdo3 = false; showISOdoMore = false; } } if(isOdo.Name__c == '手术间2'){ ISOppDemandOper2 = isOdo; ISOppDemandOper2.Remarks_Text__c = reStringAll(isOdo.Remarks_Text__c); if(ISOppDemandOper2 != null){ showISOdo2 = true; showISOdo1 = true; showISOdo3 = false; showISOdoMore = false; } } if(isOdo.Name__c == '手术间3'){ ISOppDemandOper3 = isOdo; ISOppDemandOper3.Remarks_Text__c = reStringAll(isOdo.Remarks_Text__c); if(ISOppDemandOper3 != null){ showISOdo3 = true; showISOdo2 = true; showISOdo1 = true; showISOdoMore = false; } } if(isOdo.Name__c == '术间数量>3间'){ ISOppDemandOperMore = isOdo; ISOppDemandOperMore.Project_Information__c = reStringAll(isOdo.Project_Information__c); if(ISOppDemandOperMore != null){ showISOdoMore = true; showISOdo2 = false; showISOdo1 = false; showISOdo3 = false; } } } // 控制术间和示教点的显示 if(ISOppDemandList.Operating_Room_Count__c == '1'){ showISOdo1 = true; showISOdo2 = false; showISOdo3 = false; showISOdoMore = false; } if(ISOppDemandList.Operating_Room_Count__c == '2'){ showISOdo1 = true; showISOdo2 = true; showISOdo3 = false; showISOdoMore = false; } if(ISOppDemandList.Operating_Room_Count__c == '3'){ showISOdo1 = true; showISOdo2 = true; showISOdo3 = true; showISOdoMore = false; } if(ISOppDemandList.Operating_Room_Count__c == '>3'){ showISOdo1 = false; showISOdo2 = false; showISOdo3 = false; showISOdoMore = true; } if(ISOppDemandList.Demonstration_Number__c == '1'){ showISOdd1 = true; showISOdd2 = false; showISOddMore = false; } if(ISOppDemandList.Demonstration_Number__c == '2'){ showISOdd1 = true; showISOdd2 = true; showISOddMore = false; } if(ISOppDemandList.Demonstration_Number__c == '>2'){ showISOdd1 = false; showISOdd2 = false; showISOddMore = true; } // 拆分si询价示教点 for(IS_Opportunity_Demand_Demonstration__c isOdd : ISOppDemandDemonList){ if(isOdd.Name__c == '示教点1'){ ISOppDemandDemon1 = isOdd; ISOppDemandDemon1.Other_Require_Text__c = reStringAll(isOdd.Other_Require_Text__c); if(ISOppDemandDemon1 != null){ showISOdd1 = true; showISOdd2 = false; showISOddMore = false; } } if(isOdd.Name__c == '示教点2'){ ISOppDemandDemon2 = isOdd; ISOppDemandDemon2.Other_Require_Text__c = reStringAll(isOdd.Other_Require_Text__c); if(ISOppDemandDemon2 != null){ showISOdd2 = true; showISOdd1 = true; showISOddMore = false; } } if(isOdd.Name__c == '示教点数量>2'){ ISOppDemandDemonMore = isOdd; ISOppDemandDemonMore.Teaching_Needs__c = reStringAll(isOdd.Teaching_Needs__c); if(ISOppDemandDemonMore != null){ showISOddMore = true; showISOdd2 = false; showISOdd1 = false; } } } // 拆分si询价手术间的配置单 for(IS_Opportunity_Demand_Configuration__c isOdc : ISOppDemandConfiguateList){ String conType = isOdc.Configuration_Type__c; System.debug(isOdc.IS_Opportunity_Demand_Operating__r.Name__c +'配置单对应类型:'+conType.substring(5,conType.length()-3)+'术间对应类型:'+ISOppDemandOper1.Operating_Room_Type__c); if(isOdc.IS_Opportunity_Demand_Operating__r.Name__c == '手术间1' && conType.substring(5,conType.length()-3) == ISOppDemandOper1.Operating_Room_Type__c){ if(!isOdc.Matching__c){ ISOppDemandConfiguate1.add(isOdc); } if(isOdc.Matching__c){ ISOppDemandConfiguateMatch1.add(isOdc); } } if(isOdc.IS_Opportunity_Demand_Operating__r.Name__c == '手术间2' && conType.substring(5,conType.length()-3) == ISOppDemandOper2.Operating_Room_Type__c){ // ISOppDemandConfiguate2.add(isOdc); if(!isOdc.Matching__c){ ISOppDemandConfiguate2.add(isOdc); } if(isOdc.Matching__c){ ISOppDemandConfiguateMatch2.add(isOdc); } } if(isOdc.IS_Opportunity_Demand_Operating__r.Name__c == '手术间3' && conType.substring(5,conType.length()-3) == ISOppDemandOper3.Operating_Room_Type__c){ // ISOppDemandConfiguate3.add(isOdc); if(!isOdc.Matching__c){ ISOppDemandConfiguate3.add(isOdc); } if(isOdc.Matching__c){ ISOppDemandConfiguateMatch3.add(isOdc); } } } System.debug(ISOppDemandConfiguate1+'======'); } // 为长文本格式化打印 public String reStringAll(String str){ if(str != '' && str != null){ String[] strList = str.split('\n'); Integer lineL = 40; String reStrAll = ''; for(Integer i = 0 ; i < strList.size() ; i++){ String reStr = strList[i]; String reStrM = ''; for(Integer j = 0 ; j <= reStr.length()/lineL ; j++ ){ if(reStr.length() > (lineL*(j+1))){ reStrM += reStr.substring(j*lineL,(j+1)*lineL); reStrM += '\n'; }else{ reStrM += reStr.substring(j*lineL,reStr.length()); reStrM += '\n'; } } reStrAll += reStrM; } return reStrAll; } return null; } }